Jquery 实现瀑布流布局
//保证img文件夹下有图片
//引入jquery
<script src="Script/jquery-1.7.2.js"></script> <style> * { padding: 0; margin: 0; } #main { position: relative; } .pin { padding: 10px 0 0 10px; float: left; } .box { padding: 10px; border: 1px solid #ccc; box-shadow: 0 0 6px #ccc; border-radius: 5px; height:90%; } .box img { width: 162px; height: auto; } </style> <body> <form id="form1" runat="server"> <div id="main"> <div class="pin"> <div class="box"> <img src="img/1.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/2.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/3.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/4.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/5.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/6.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/7.jpg" /> </div> </div> <div class="pin"> <div class="box"> <img src="img/8.jpg" /> </div> </div> </div> </form> </body>
////////////js
<script> window.onload = function () { waterfall();//加载时成瀑布流效果 var imgss = { "data": [{ "src": "img/1.jpg" }, { "src": "img/2.jpg" }, { "src": "img/3.jpg" }, { "src": "img/4.jpg" }, { "src": "img/5.jpg" }, ] }; $(window).on("scroll", function () { if (fun_scroll()) { for (var i = 0; i < imgss.data.length; i++) { var div_pin = $("<div>").addClass("pin"); var div_box = $("<div>").addClass("box"); div_box.appendTo(div_pin); var img = $("<img>").attr("src", imgss.data[i].src); img.appendTo(div_box); div_pin.appendTo($("#main")); waterfall(); } } }); } //设置瀑布流 function waterfall() { ////获取单个宽度 /////////////$(".pin").width();//只获取元素的真实宽度 /////////////document.getElementById("id")offsetWidth;//获取元素加上外间距的宽度 var objWidth = $(".pin:eq(0)").get(0).offsetWidth;//.width(); ////获取每行个数document.documentElement.clientWidth var num = Math.floor($(document).width() / objWidth); $("#main").css({ "width": (objWidth * num) + "px", "margin": "0 auto" }); var heigs = []; $(".pin").each(function (i, obj) { if (i < num) { heigs.push($(obj).get(0).offsetHeight); } else { //获取最小的值 var mixh = Math.min.apply(null, heigs); //获取值的索引 var inx = $.inArray(mixh, heigs, null); $(obj).css({ "position": "absolute", "top": mixh, "left": $(".pin").eq(inx).position().left, }); heigs[inx] += $(obj).get(0).offsetHeight; } }); } //滚动,滚动条时动态加载图片 var fun_scroll = function () { //最后一个元素距离顶部的高度+自身一半高度 var lastObjHeight = Math.floor($(".pin").last().offset().top) + Math.floor($(".pin").last().height() / 2); //卷进去的高度 var scrollHeight = document.documentElement.scrollTop || document.body.scrollTop; //屏幕的高度 var deviceheight = document.documentElement.clientHeight; return ((deviceheight + scrollHeight) > lastObjHeight) ? true : false; } </script>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。