懒加载+瀑布流 vue

举个栗子:
在这里插入图片描述

// HTML:
	<div class="box">
		<div class="card">
			<div>
				<img @load="loadImg()" src="url" alt="" />			// 可以循环放图片
			</div>
		</div>
	</div>
//JS 
methods:{
	loadImg() {
		this.waterFall(4);		// 一排4个,可以根据宽度自动调整
	},
	waterFall(num) {			// 动态的计算位置
      // 瀑布流
      var cardW = parseInt($(".card").outerWidth());
      var hArr = [];
      $(".card").each((index, item) => {
        if (index < num) {
          $(item).css({
            top: 0,
            left: index * cardW + index * 18 + "px",
          });
          hArr.push($(item).outerHeight());
        } else {
          var minH = Math.min.apply(null, hArr);
          var minIndex = hArr.indexOf(minH);
          $(item).css({
            top: `${minH + 18}px`,
            left: `${cardW * minIndex + minIndex * 18}px`,
          });
          hArr[minIndex] = $(item).outerHeight() + 18 + hArr[minIndex];
        }
      });
      var maxH = Math.max.apply(null, hArr);
      $('.box').height(maxH + 10);
    },
}
 // css
 .box {
 	position:relative;
 .card {
 	position:absolute;
 	img {
      min-width: 50%;
      max-width: 100%;
      margin: 0 auto;
      cursor: pointer;
      margin-bottom: 6px;
      transition: all 0.3s;					
      -webkit-transition: all 0.3s;
      -moz-transition: all 0.3s;
      -ms-transition: all 0.3s;
      &:hover {					//实现缩放
        transform: scale(1.2);
        -webkit-transform: scale(1.2);
        -moz-transform: scale(1.2);
        -ms-transform: scale(1.2);
        opacity: 0.8;
      }
    }
 	}
 }	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值