微信小程序实现瀑布流布局(方式一)

这篇具有很好参考价值的文章主要介绍了微信小程序实现瀑布流布局(方式一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.实现效果

小程序瀑布流,小程序,微信小程序,css,前端文章来源地址https://www.toymoban.com/news/detail-521863.html

2.实现原理

  • 根据奇数列和偶数列区分左边和右边数据
  • 设置width固定,mode=“widthFix”
  • 适用于:左右两列的高度相差不是很大

3.实现代码

<view class="content">
  <view class="left">
    <block wx:for="{{list}}" wx:key="index">
      <template is="item" data="{{...item}}" wx:if="{{index%2==0}}"></template>
    </block>
  </view>
  <view class="right">
    <block wx:for="{{list}}" wx:key="index">
      <template is="item" data="{{...item}}" wx:if="{{index%2==1}}"></template>
    </block>
  </view>
</view>
<template name="item">
  <view class="item">
    <image class="item-img" src="{{url}}" mode="widthFix"></image>
    <view class="item-title-box">
      <navigator url="url" class="item-title">{{title}}</navigator>
    </view>
    <view class="name">
      <image class="item-ava" src="{{avatar}}"></image>
      <text class="name-title">{{name}}</text>
      <view class="heart">
        <text>{{num}}</text>
      </view>
    </view>
  </view>
</template>
page {
  padding: 10rpx;
}

.content {
  text-align: justify;
}

.item {
  background-color: #fff;
  margin: 10rpx 3%;
  margin-bottom: 20rpx;
  display: inline-block;
  width: 96%;
  border-radius: 20rpx;
  overflow: hidden;
}

.item-ava {
  width: 40rpx;
  height: 40rpx;
  border-radius: 20rpx;
}

.heart {
  width: 30rpx;
  height: 26rpx;
  margin-right: 8rpx;
}

.heart {
  display: flex;
  align-items: center;
}

.item-img {
  width: 100%
}

.item-title {
  font-size: 24rpx;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  font-family: 'PingFang SC-Medium';
  color: #1e1e1e;
  margin: 15rpx;
  line-height: 27rpx;
}

.item .name {
  display: flex;
  padding: 0 15rpx;
  margin-top: 20rpx;
  padding-bottom: 10rpx;
  align-items: center;
  font-size: 22rpx;
  color: #1e1e1e;
  font-family: 'PingFang SC-Medium';
}

.name image {
  flex: 0 0 auto;
}

.item-title-box {
  display: flex;
  position: relative;
}

.name-title {
  flex: 1;
  margin-left: 18rpx;
  margin-right: 20rpx;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}

.name text:last-child {
  color: #c4c4c4;
  text-decoration: underline;
  line-height: 10rpx;

}

.left,
.right {
  display: inline-block;
  vertical-align: top;
  width: 49%;
}
Page({
  data: {
    list: [{
      name: '苏苏',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/4.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/4.png'
    },
    {
      name: '苏苏2',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/7.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/7.png'
    },
    {
      name: '苏苏3',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/6.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/6.png'
    },
    {
      name: '苏苏4',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/3.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/3.png'
    },
    {
      name: '苏苏5',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/1.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/1.png'
    },
    {
      name: '苏苏6',
      num: '1',
      title: '测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测测试数据测试测试测试测',
      url: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/2.png',
      avatar: 'https://gitee.com/susuhhhhhh/su-sus-picture/raw/master/%E5%A5%BD%E7%9C%8B%E5%9B%BE%E7%89%87/2.png'
    },
    ]
  }
})

4.完整代码,尽在公众号’苏苏的bug’,更多小程序demo,关注苏苏的码云,如果对你有用,欢迎您的star+订阅!

到了这里,关于微信小程序实现瀑布流布局(方式一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • css+js瀑布流布局实现

    记录一个瀑布流布局问题的解决过程 最开始使用js实现,将 子元素进行绝对定位,根据宽高及顺序判断定位的top与left 。 问题 :存在新增子元素页面加载不及时的问题,会出现子元素初始状态叠加在一起,计算完成后才能正常显示。 点击查看代码 再次尝试使用css中的colum

    2024年02月04日
    浏览(25)
  • css 使用flex 完成瀑布流布局

    瀑布流布局在商城类、文章类 app、网页中都是常用的,使用这样的形式,能过让整个页面更加的活波,也能让图片根据实际的大小来显示,更好的展示图片内容。那么代码如何实现呢 其中下面代码部分是scss

    2024年02月04日
    浏览(31)
  • css3瀑布流布局遇见截断下一列展示后半截现象

    注:css3实现瀑布流布局简直不要太香~~~~~ 包括分割线的颜色、样式、宽度。其语法格式为: column-rule: column-rule-width || column-rule-style || column-rule-color 简单的例子: 这里就不给实例了,感兴趣的可以自己去尝试一下

    2024年02月13日
    浏览(30)
  • css3 瀑布流布局遇见截断下一列展示后半截现象

    注:css3实现瀑布流布局简直不要太香~~~~~ 当瀑布流布局column-grap:10px 相邻两列之间的间隙为10px,column-count:2,2列展示时,就出现了截断问题,如下图: 代码如下: 修改后的代码如下: 包括分割线的颜色、样式、宽度。其语法格式为: column-rule: column-rule-width || column-

    2024年02月13日
    浏览(26)
  • 微信小程序 - - - - - 瀑布流效果实现

    对于一些小程序,关于瀑布流的需求是很正常的,瀑布流看起来确实很舒服,但是具体该如何实现呢? 下文给出的方式是: js + css 瀑布流,又称 瀑布流式布局 。 是比较流行的一种网站页面布局, 视觉表现为 参差不齐的多栏布局 ,随着页面滚动条向下滚动,这种布局还会

    2024年02月17日
    浏览(35)
  • vue3实现瀑布流布局组件

    先看效果图 直接上代码 utils.js data.js 模拟后台返回的数据 瀑布流布局组件 waterfall.vue 使用该组件(这里 columns 写死了3列) 若要响应式调整列数,可参考以下代码 瀑布流布局组件监听 columns 变化

    2024年02月21日
    浏览(40)
  • 实现瀑布流布局的四种方法

    页面上是一种 参差不齐 的多栏布局,类似上图所示随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部,大部分为图片,图片 固定 宽度,高度 不一 ,根据原比例缩放到宽度达到固定的要求,每行排满后,新的图片添加到后面 固定宽度,高度不一 岑

    2023年04月15日
    浏览(48)
  • 微信小程序--瀑布流

    本文使用了微信小程序第三方组件库 Lin UI 。 Lin UI 是基于 微信小程序原生语法 实现的组件库。遵循简洁,易用的设计规范。 Lin UI 中封装了瀑布流的组件,使用方法也比较简单,但是写法让我不是很理解,因此决定下载源码研究。 以下将从 如何使用 , 源码研究 , 源码改

    2024年02月09日
    浏览(26)
  • 微信小程序瀑布流组件

    1.创建文件夹    /components/waterfall/  文件夹结构如图 各文件内容: 我这里直接就是写死了两列排列 然后在用到该组件的页面文件夹下  .json 文件夹中引入 注意:文件路径不要写错了!!!这里只是一个参考  然后使用该组件  对其dataArr【 注意:我这里定义的是dataArr!!! 】

    2024年02月16日
    浏览(33)
  • 前端笔记(Css、JS、Vue、UniApp、微信小程序)

    点击穿透 应用场景:点赞或送礼等出现的弹窗遮罩,无法再次触发点击事件 磨砂模糊 底部安全距离 可以放入【common.scss】中,在需要的页面引入 宽度根据内容决定 媒体查询@media 必须是以 @media 开头 使用 mediatype 指定媒体(设备)类型 使用 and | not | only 逻辑操作符构建复杂

    2024年04月26日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包