jquerymobile-6 inset list和list divider 添加数字气泡 缩略图和icon list提交搜索过滤

来源:互联网 发布:js复杂数据类型有哪些 编辑:程序博客网 时间:2024/06/03 19:52

今天介绍一下inset list和list diveder。在上篇文章中介绍了list,但是那个list是最基本,并不是太美观。我们可以使用jquerymobile的data-inset属性让其变得美观一下。代码如下:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Inset List Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true"><!--这里使用的data-inset属性-->  
  21.         <li>1</li>  
  22.         <li>2</li>  
  23.         <li>3</li>  
  24.         <li>4</li>  
  25.         </ul>  
  26.     </div>  
  27.   
  28.     <div data-role="footer">  
  29.         <h4>My Footer</h4>  
  30.     </div>  
  31.           
  32. </div>  
  33.   
  34. </body>  
  35. </html>  


这样就看起来好看一点了。有时候我们需要在一个很长的列表中添加一行用于区分的数据,这时候我们就可以使用data-role="list-divider",添加到其中的某一个li上,这样就能实现区分的效果。一个例子代码如下:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>List Divider Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true">  
  21.         <li data-role="list-divider">A</li>  
  22.         <li>A-1</li>  
  23.         <li>A-2</li>  
  24.         <li>A-3</li>  
  25.         <li data-role="list-divider">B</li>  
  26.         <li>b-1</li>  
  27.         </ul>  
  28.     </div>  
  29.   
  30.     <div data-role="footer">  
  31.         <h4>My Footer</h4>  
  32.     </div>  
  33.           
  34. </div>  
  35.   
  36. </body>  
  37. </html>  

效果图如下:


在项目中,我们一般使用list显示一个列表,如果这个列表还有子项的时候,有时候我们需要在上面加上子项的数目,这时候我们就可以使用jquerymobile提供的CSS类中的ui-li-count类实现这样的效果。一段例子代码如下:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Count Bubble Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true">  
  21.         <li data-role="list-divider">Cookies Eaten</li>  
  22.         <li><span class="ui-li-count">9</span></li>  
  23.         <li><span class="ui-li-count">4</span></li>  
  24.         <li><span class="ui-li-count">13</span></li>  
  25.         <li><span class="ui-li-count">8</span></li>  
  26.         </ul>  
  27.     </div>  
  28.   
  29.     <div data-role="footer">  
  30.         <h4>My Footer</h4>  
  31.     </div>  
  32.           
  33. </div>  
  34.   
  35. </body>  
  36. </html>  

我们只要添加一个span并且给起添加ui-li-count类就可以实现了。效果如下:


有时候我们需要在list中的每一项上添加上缩略图,这时候我们就可以直接插入一个img标签,jquerymobile会为我们自动渲染成带缩略图的。下面看一个例子代码:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Thumbnail Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true">  
  21.         <li><img src="ray.png"> Raymond Camden</li><!--这行没有使用A标签所以后面不会有一个小箭头,其他的都有-->  
  22.         <li><a href="scott.html"><img src="scott.png"> Scott Stroz</a></li>  
  23.         <li><a href="todd.html"><img src="todd.png"> Todd Sharp</a></li>  
  24.         <li><a href="dave.html"><img src="dave.png"> Dave Ferguson</a></li>  
  25.         </ul>  
  26.     </div>  
  27.   
  28.     <div data-role="footer">  
  29.         <h4>My Footer</h4>  
  30.     </div>  
  31.           
  32. </div>  
  33.   
  34. </body>  
  35. </html>  

效果如下:


第一项没有小箭头在代码中注释中有解释。

看到这个总是感觉这几个人的头像有点大了,我们只需要比较小的就可以了。这时候可以使用jquerymobile提供的一个CSS类ui-li-icon,在每个img标签中添加上这个类就可以了。修改后代码如下:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>Thumbnail Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true">  
  21.         <li><img src="ray_small.png" class="ui-li-icon"> Raymond Camden</li>  
  22.         <li><a href="scott.html"><img src="scott_small.png" class="ui-li-icon"> Scott Stroz</a></li>  
  23.         <li><a href="todd.html"><img src="todd_small.png" class="ui-li-icon"> Todd Sharp</a></li>  
  24.         <li><a href="dave.html"><img src="dave_small.png" class="ui-li-icon"> Dave Ferguson</a></li>  
  25.         </ul>  
  26.     </div>  
  27.   
  28.     <div data-role="footer">  
  29.         <h4>My Footer</h4>  
  30.     </div>  
  31.           
  32. </div>  
  33.   
  34. </body>  
  35. </html>  

效果如下:


在开发的时候如果list过长的话,在其中查找特定的一项是比较麻烦的,jquerymobile为我们直接提供了搜索的功能。我们就可以直接使用其功能查找我们想要的结果。为了实现这个功能我们只需要在ul中添加data-filter="true",这样jquerymobile就会自动添加一个过滤的搜索框,并且实现搜索功能了。下面给出一个例子代码:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <title>List Divider Example</title>  
  5. <meta name="viewport" content="width=device-width, initial-scale=1">  
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />  
  7. <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>  
  8. <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>  
  9. </head>  
  10.   
  11. <body>  
  12.   
  13. <div data-role="page">  
  14.   
  15.     <div data-role="header">  
  16.         <h1>My Header</h1>  
  17.     </div>  
  18.       
  19.     <div data-role="content">  
  20.         <ul data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Something">  
  21.         <li><a href="ray.html">Raymond Camden</a></li>  
  22.         <li><a href="scott.html">Scott Stroz</a></li>  
  23.         <li><a href="todd.html">Todd Sharp</a></li>  
  24.         <li><a href="dave.html">Dave Ferguson</a></li>  
  25.         <!-- following links all share the same url to keep things simple -->  
  26.         <li><a href="dave.html">Jeanne Camden</a></li>  
  27.         <li><a href="dave.html">Alexson Boudreaux</a></li>  
  28.         <li><a href="dave.html">Ben Forta</a></li>  
  29.         <li><a href="dave.html">Rachel Luxemburg</a></li>  
  30.         <li><a href="dave.html">Lynn Camden</a></li>  
  31.         <li><a href="dave.html">Noah Camden</a></li>  
  32.         <li><a href="dave.html">Jacob Camden</a></li>  
  33.         <li><a href="dave.html">Luke Skywalker</a></li>  
  34.         <li><a href="dave.html">Anakin Skywalker</a></li>  
  35.         <li><a href="dave.html">Moonpie Rockhead</a></li>  
  36.         <li><a href="dave.html">Lisa Spacestation</a></li>  
  37.         <li><a href="dave.html">Terrible Ricky</a></li>  
  38.         <li><a href="dave.html">Han Solo</a></li>  
  39.         </ul>  
  40.     </div>  
  41.   
  42.     <div data-role="footer">  
  43.         <h4>My Footer</h4>  
  44.     </div>  
  45.           
  46. </div>  
  47.   
  48. </body>  
  49. </html>  

显示效果如下(由于比较多没有完全显示,导致footer没有显示出来):


当我们输入了“r”后,footer显示出来了,显示效果如下:


原创粉丝点击