jquery实现瀑布流效果
时间: 2023-08-12 22:10:32 浏览: 168
Jquery实现瀑布流效果
jQuery实现瀑布流效果需要先引入jQuery库,然后通过计算每个元素的位置和高度,来实现元素的动态排列。
以下是一个简单的示例代码:
HTML部分:
```html
<div id="waterfall">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
</div>
```
CSS部分:
```css
#waterfall {
width: 800px; /* 瀑布流容器宽度 */
margin: 0 auto;
}
.item {
width: 380px; /* 每个元素宽度 */
margin: 10px;
float: left;
background-color: #eee;
}
```
jQuery部分:
```javascript
$(function() {
// 获取瀑布流容器的宽度
var containerWidth = $('#waterfall').width();
// 获取每个元素的宽度和间距
var itemWidth = $('.item').outerWidth(true);
// 计算列数
var cols = Math.floor(containerWidth / itemWidth);
// 创建一个数组用于存放每一列的高度
var heightArr = [];
for (var i = 0; i < cols; i++) {
heightArr.push(0);
}
// 遍历每个元素
$('.item').each(function() {
// 获取元素的高度
var itemHeight = $(this).outerHeight(true);
// 找到高度最小的那一列
var minHeight = Math.min.apply(null, heightArr);
var minIndex = $.inArray(minHeight, heightArr);
// 设置元素的位置
$(this).css({
'left': minIndex * itemWidth,
'top': minHeight
});
// 更新该列的高度
heightArr[minIndex] += itemHeight;
});
});
```
上述代码实现了一个简单的瀑布流效果,可以根据实际需求进行修改。
阅读全文