当前位置:Gxlcms > JavaScript > 瀑布流布局视频资料分享

瀑布流布局视频资料分享

时间:2021-07-01 10:21:17 帮助过:27人阅读

瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。国内大多数清新站基本为这类风格。

瀑布流布局是网站比较流行的一种布局方式。本案例将深入讲解实现瀑布流布局的三大方式:JavaScript、jQurey和CSS3,你将学习到如何用JavaScript方法实现图片的定位及排序、两种不同的方式对图片进行持续加载,以及CSS3中多栏布局怎么实现瀑布流布局。

58aa5c2f975a9968.jpg

视频播放地址:http://www.gxlcms.com/course/301.html

学习难点:

  1. $( window ).on( "load", function(){
  2. waterfall('main','box');
  3. //模拟数据json
  4. var dataJson = {'data': [{'src':'30.jpg'},{'src':'31.jpg'},{'src':'32.jpg'},{'src':'33.jpg'},{'src':'34.jpg'},{'src':'35.jpg'},{'src':'36.jpg'},{'src':'37.jpg'},{'src':'38.jpg'},{'src':'39.jpg'},{'src':'40.jpg'},{'src':'41.jpg'},{'src':'42.jpg'},{'src':'43.jpg'},{'src':'44.jpg'},{'src':'45.jpg'}]};
  5. window.onscroll=function(){
  6. var isPosting = false;
  7. if(checkscrollside('main','box') && !isPosting){
  8. isPosting = true;
  9. $.each(dataJson.data,function(index,dom){
  10. var $box = $('<div class="box"></div>');
  11. $box.html('<div class="pic"><img src="./images/'+$(dom).attr('src')+'"></div>');
  12. $('#main').append($box);
  13. waterfall('main','box');
  14. isPosting = false;
  15. });
  16. }
  17. }
  18. });
  19. /*
  20. parend 父级id
  21. clsName 元素class
  22. */
  23. function waterfall(parent,clsName){
  24. var $parent = $('#'+parent);//父元素
  25. var $boxs = $parent.find('.'+clsName);//所有box元素
  26. var iPinW = $boxs.eq( 0 ).width()+15;// 一个块框box的宽
  27. var cols = Math.floor( $( window ).width() / iPinW );//列数
  28. $parent.width(iPinW * cols).css({'margin': '0 auto'});
  29. var pinHArr=[];//用于存储 每列中的所有块框相加的高度。
  30. $boxs.each( function( index, dom){
  31. if( index < cols ){
  32. pinHArr[ index ] = $(dom).height(); //所有列的高度
  33. }else{
  34. var minH = Math.min.apply( null, pinHArr );//数组pinHArr中的最小值minH
  35. var minHIndex = $.inArray( minH, pinHArr );
  36. $(dom).css({
  37. 'position': 'absolute',
  38. 'top': minH + 15,
  39. 'left': $boxs.eq( minHIndex ).position().left
  40. });
  41. //添加元素后修改pinHArr
  42. pinHArr[ minHIndex ] += $(dom).height() + 15;//更新添加了块框后的列高
  43. }
  44. });
  45. }
  46. //检验是否满足加载数据条件,即触发添加块框函数waterfall()的高度:最后一个块框的距离网页顶部+自身高的一半(实现未滚到底就开始加载)
  47. function checkscrollside(parent,clsName){
  48. //最后一个块框
  49. var $lastBox = $('#'+parent).find('.'+clsName).last(),
  50. lastBoxH = $lastBox.offset().top + $lastBox.height()/ 2,
  51. scrollTop = $(window).scrollTop(),
  52. documentH = $(document).height();
  53. return lastBoxH < scrollTop + documentH ? true : false;
  54. }

以上就是瀑布流布局视频资料分享的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行