麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

thinkPHP實現瀑布流

2024-09-09 15:19:45
字體:
來源:轉載
供稿:網友

很多人都想做瀑布流的效果,這里告訴大家官網使用的方法,首先要下載瀑布流的插件jquery.masonry.min.js 地址:http://masonry.desandro.com/index.html里面包含的很多示例.

流程:

1,頁面初始化時,調用插件進行一次排版;

2,當用戶將滾動條拖到底部時,用ajax加載一次數據,并排版顯示

3,重復2,直到無數據

Html代碼:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  5. <title>Insert title here</title> 
  6. <!--樣式--> 
  7. <style type="text/css"> 
  8. body {margin:40px auto; width:800px; font-size:12px; color:#666;} 
  9. .item{ 
  10. border: 1px solid #D4D4D4; 
  11. color: red; 
  12. margin: 0 10px 10px 0; 
  13. padding: 10px; 
  14. position: relative; 
  15. width: 200px; 
  16. .loading-wrap{ 
  17. bottom: 50px; 
  18. width: 100%; 
  19. height: 52px; 
  20. text-align: center; 
  21. display: none; 
  22. .loading { 
  23. padding: 10px 10px 10px 52px; 
  24. height: 32px; 
  25. line-height: 28px; 
  26. color: #FFF; 
  27. font-size: 20px; 
  28. border-radius: 5px; 
  29. background: 10px center rgba(0,0,0,.7); 
  30. .footer{ 
  31. border: 2px solid #D4D4D4; 
  32. </style> 
  33. <!--樣式--> 
  34. </head> 
  35. <body> 
  36. <!--引入所需要的jquery和插件--> 
  37. <script type="text/javascript" src="/test/public/Js/jquery-1.7.2.min.js"></script> 
  38. <script type="text/javascript" src="/test/public/Js/jquery.masonry.min.js"></script> 
  39. <!--引入所需要的jquery和插件--> 
  40. <!--瀑布流--> 
  41. <div id="container" class=" container"> 
  42. <!--這里通過設置每個div不同的高度,來凸顯布局的效果--> 
  43. <volist name="height" id="vo"> 
  44. <div class="item" style="height:{$vo}px;">瀑布流下來了</div> 
  45. <input type="hidden" name="last_id" class="last_id" value="{$vo.id}"/> 
  46. </volist> 
  47. </div> 
  48. <!--瀑布流--> 
  49. <!--加載中--> 
  50. <div id="loading" class="loading-wrap"> 
  51. <span class="loading">加載中,請稍后...</span> 
  52. </div> 
  53. <!--加載中--> 
  54. <!--尾部--> 
  55. <div class="footer"><center>我是頁腳</center></div> 
  56. <!--尾部--> 
  57. <script type="text/javascript"> 
  58. //用于轉換unix時間戳 
  59. function unix_to_datetime(unix)  
  60. var now = new Date(parseInt(unix) * 1000); 
  61. return now.toLocaleString().replace(/年|月/g, "-").replace(/日/g, " "); 
  62. $(function(){ 
  63. //頁面初始化時執行瀑布流 
  64. var $container = $('#container'); 
  65. $container.masonry({ 
  66. itemSelector : '.item', 
  67. isAnimated: true 
  68. }); 
  69. //用戶拖動滾動條,達到底部時ajax加載一次數據 
  70. var loading = $("#loading").data("on", false);//通過給loading這個div增加屬性on,來判斷執行一次ajax請求 
  71. $(window).scroll(function(){ 
  72. if(loading.data("on")) return; 
  73. if($(document).scrollTop() > $(document).height()-$(window).height()-$('.footer').height()){//頁面拖到底部了 
  74. //加載更多數據 
  75. loading.data("on", true).fadeIn(); //在這里將on設為true來阻止繼續的ajax請求 
  76.  
  77. //獲取最后一個id 
  78. var lastid = $('.last_id:last').val(); 
  79. $.get( 
  80. "getMore", //要跳轉的頁面 
  81. {lastid:lastid},//傳值 
  82. function(data){ 
  83. //獲取到了數據data,后面用JS將數據新增到頁面上 
  84. var getdata = data.data; 
  85. var html = ""
  86. if($.isArray(getdata)){ 
  87. $.each(data.data,function(i,item) { 
  88. html += "<div class=/"item/" style=/"height:"+data[i]+"px;/">瀑布又流下來了</div>"; 
  89. }); 
  90. var $newElems = $(html).css({ opacity: 0 }).appendTo($container); 
  91. $newElems.imagesLoaded(function(){ 
  92. $newElems.animate({ opacity: 1 }); 
  93. $container.masonry( 'appended', $newElems, true );  
  94. }); 
  95. //一次請求完成,將on設為false,可以進行下一次的請求 
  96. loading.data("on", false); 
  97. loading.fadeOut(); 
  98. }, 
  99. "json" 
  100. ); 
  101. }); 
  102. }); 
  103. </script> 
  104. </body> 
  105. </html> 

Action代碼

  1. //初始化的數據 
  2. public function lists(){  
  3. $data = D('Info')->order('id DESC')->limit(10)->select(); 
  4. $this->assign('data'$data); 
  5. $this->display(); 
  6. //獲取一次請求的數據 
  7. public function getMore(){  
  8. //獲取最后一個id 
  9. if(!emptyempty($_GET['lastid']))$map['id'] = array('lt'$_GET['lastid']);  
  10. $data = D('Info')->where($map)->order('id DESC')->limit(10)->select(); 
  11. $this->ajaxReturn($data); 

注意:通過判斷窗口是否滾動到頁面底部來決定用ajax加載一次數據,如果不做處理,會一下子請求很多次,所以,要使用條件來限制.

我使用的是往一個元素上賦值 $("#loading").data("on", true);,在請求期間判斷是true則不繼續請求,然后在頁面請求完成后再賦值為false.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 久久精品视频亚洲 | 久久精品99国产国产精 | av不卡毛片 | 国产精品久久久不卡 | 免费国产一区 | 欧美精品v国产精品v日韩精品 | 在线看免电影网站 | 一级黄片毛片免费看 | 国产一级αv片免费观看 | 天天舔天天插 | 国产羞羞视频在线观看 | 国产品久久 | 日本欧美一区二区三区视频麻豆 | 日韩欧美电影在线观看 | 国产va在线观看 | 31freehdxxxx欧美| 久久777国产线看观看精品 | 午夜精品福利影院 | 日韩欧美视频一区二区三区 | 一区二区三区日韩在线观看 | 婷婷一区二区三区 | 国产精品成人一区二区三区电影毛片 | 亚洲欧美aⅴ | 免费久久精品 | 免费a视频在线观看 | 请播放一级毛片 | 国产精品视频亚洲 | 欧美特一级 | asian裸体佳人pics | 斗破苍穹在线免费 | 成人一区二区三区在线 | 国产乱xxxx | 日本羞羞影院 | 久色视频网站 | a黄色网| 久久艹精品 | 香蕉视频破解 | 91短视频网页版 | 国产精品伦视频看免费三 | 热99精品视频 | 日韩在线播放第一页 |