jQuery 实现瀑布流 个人完美版

编程入门 行业动态 更新时间:2024-10-11 17:27:07

jQuery 实现<a href=https://www.elefans.com/category/jswz/34/1762263.html style=瀑布流 个人完美版"/>

jQuery 实现瀑布流 个人完美版

前面已经通过这种方式实现过瀑布流了。看到慕课网上有一个类似的视频教程,就仔细看了一下。就大体实现思路来说,基本是没差的。但是就实现方法来说,慕课网上的教程()我感觉还是繁琐冗余了。尤其是javascript原生实现方法。
但其jquery方法,我还是学到一点的。就是如何查找数值在数组中的索引。

html+css结构

查看:

jQuery实现瀑布流

$(function(){var Obj = $("#waterfall"),Ul = Obj.children('ul'),Li = Ul.children('li');$(window).load(function(event) {waterfall();});$(window).resize(function(event) {waterfall();});function waterfall(){var WinW = $(window).width();var Blank = 20,                     // 每个图片之间的间隔留白LiW = 200+Blank,                // 一个图片距离上一个图片的宽度距离LiCol = parseInt(WinW/LiW),     // 计算在当前窗口下,有几列UlW = LiCol*LiW-Blank;          // 根据有几列,设定总的宽度(减掉最后一个留白)Ul.width(UlW);var AllLi = [];                     // 建立一个空数组变量Li.each(function(index, e){var T = $(this);if (index<LiCol) {                      // 第一行的处理AllLi[index] = T.outerHeight();     // 给数组添加内容,为当前元素的高度值T.css({top: 0,left: LiW*index+'px'});} else{var MinH = Math.min.apply(null,AllLi);      // 找到数组中,最小的那个值(也就是留白最大的)var MinI = $.inArray(MinH,AllLi);			// 通过 $.inArray 查找数值在数组中的索引var ThisH = T.outerHeight()+Blank;          // 自身的高度加上留白AllLi[MinI] = parseInt(MinH+ThisH);         // 将被占位的数组重新赋值T.css({top: MinH+Blank+'px',left: LiW*MinI+'px'});};});}
})

效果预览地址:
这个是原生js的效果。jquery的和他一样。

更多推荐

jQuery 实现瀑布流 个人完美版

本文发布于:2024-02-06 15:48:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750085.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:瀑布   完美版   jQuery

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!