微信小程序实现吸顶、网格、瀑布流布局

微信小程序开发通常是在webview模式下编写,但是对小程序的渲染性能有一定的追求,就需要使用Skyline模式进行渲染,同时在这种模式下有也有一些特殊的组件,可以轻松的实现想要的效果,本文将介绍在Skyline模式下如何实现吸顶、网格、瀑布流布局。

以下是具体的实现:

1. 修改渲染模式

1. 在app.json中添加如下配置:

"renderer": "skyline",  // 声明渲染模式
"lazyCodeLoading": "requiredComponents", // 声明依赖注入
"rendererOptions": {   "skyline": {"defaultDisplayBlock": true, // 默认为块布局"defaultContentBox": true,   // 默认开启盒模型"disableABTest": true        // 禁用AB测试}
},
"componentFramework": "glass-easel" // 使用的组件框架

2. 由于在Skyline模式下,不支持页面全局滚动,也不支持原生导航栏,所以在页面的json配置文件中还要添加如下配置:

{"usingComponents": {},"disableScroll": true,"navigationStyle": "custom"
}

2. 主要组件介绍

1. sticky-section 吸顶布局容器;

仅支持作为 <scroll-view type="custom"> 模式的直接子节点。

2. sticky-header 吸顶布局容器;

仅支持作为 <scroll-view type="custom"> 模式的直接子节点或 sticky-section 组件直接子节点。

3. grid-view 网格布局容器,可实现网格布局、瀑布流布局等;

仅支持作为 <scroll-view type="custom"> 模式的直接子节点。按需渲染节点,比 Webview 兼容实现具备更好的性能。

3. 所有代码实现

1. 以下是WXML文件代码

<!-- index.wxml -->
<scroll-view type="custom" scroll-y show-scrollbar="{{false}}" scroll-into-view="{{intoView}}" class="scroll-view" bindscrolltolower="bindSrollToLower" style="margin-top: {{menuTop}}px;"><sticky-section push-pinned-header="{{false}}"><sticky-header><view class="sticky-header"><view class="search" style="height: {{menuHeight}}px;line-height: {{menuHeight}}px; margin-right: {{menuLeft}}px;"><input placeholder="找找去哪儿玩~" /></view></view></sticky-header><grid-view type="aligned" cross-axis-count="5"><view wx:for="{{topList}}" class="top-list"><image src="https://res.wx.qq.com/op_res/omjFJjgEk_ZZIDmlSIE1hpn57hHOlcHvbMy1jM-BwNFczaS8S_rFryt8b3c7VC4h0BUjX4bSyjoDNaPteTlYcw" mode="aspectFill"></image><text>广州</text></view></grid-view></sticky-section><sticky-section push-pinned-header="{{false}}"><sticky-header><view class="sticky-header"><view class="sticky-header-child"><view class="mini-head current">自然风景</view><view class="mini-head">周边旅游</view><view class="mini-head">温泉</view><view class="mini-head">玩雪</view><view class="mini-head">海边</view></view></view></sticky-header><grid-view type="masonry" cross-axis-count="{{crossAxisCount}}" cross-axis-gap="{{crossAxisGap}}" main-axis-gap="{{mainAxisGap}}"><view wx:for="{{bottomList}}" class="grid-box"><image src="{{item.image_url}}" mode="widthFix"></image><view class="content-box"><text>这里的风景好美~</text><view class="profile-text"><view class="left"><image  src="https://res.wx.qq.com/op_res/lS41C5Xp6y6mfUbelCW8PArEcMwWRuhSohPO46vAiELbhAf56_CwONEDgM2vIVxOlT5KDcSxCkV8xIJ6cg3x2Q"></image><text>binnie</text></view><view class="right"><image  src="https://res.wx.qq.com/community/dist/community/images/disagree_icon_fab2b7.svg"></image><text>666</text></view></view></view></view></grid-view></sticky-section></scroll-view>

2. 以下是WXSS文件代码:

/* index.wxss */
.scroll-view {width: 100%;height: 100%;
}.search {border: rgb(228, 226, 226) solid 1px;border-radius: 20px;margin: 0 10px;line-height: 30px;height: 30px;
}.search input {padding: 0 10px;line-height: 30px;height: 30px;
}.top-list {display: flex;text-align: center;justify-content: center;align-items: center;padding-top: 10px;flex-direction: column;
}.top-list image {width: 15vw;height: 15vw;border-radius: 50%;
}.top-list text {padding: 10px 0;font-size: 14px;
}.sticky-header {background-color: #fff;
}.sticky-header-child {display: flex;flex-direction: row;
}.mini-head {display: flex;background-color: #f5f5f5;margin: 8px 6px;padding: 6px 8px;border-radius: 4px;font-size: 14px;
}.current {background-color: #07c160;color: #fff;
}.grid-box {padding: 10px;border-radius: 8px;background-color: #f5f5f5;
}.grid-box image {width: 100%;
}.content-box {padding-top: 10px;
}.profile-text {display: flex;flex-direction: row;padding-top: 4px;align-items: center;
}.profile-text view {display: flex;color: #888;font-size: 14px;flex-direction: row;align-items: center;
}.profile-text .left {width: 70%;
}.left image {width: 20px;height: 20px;border-radius: 50%;margin-right: 4px;
}.profile-text .right {text-align: right;color: #888;font-size: 14px;
}.right image {width: 16px;height: 16px;background-size: cover;opacity: .5;color: rgba(0, 0, 0, .5);margin: 0 3px;
}

3. 以下是JavaScript文件代码:

// index.jsimport { getLandscapeImages} from './data'function getNewList() {const newList = new Array(20).fill(0);const imgUrlList = getLandscapeImages();let count = 0;for (let i = 0; i < newList.length; i++) {newList[i] = {id: i+1,title: `scroll-view`,desc: `默认只会渲染在屏节点,会根据直接子节点是否在屏来按需渲染`,time: `19:20`,like: 88,image_url: imgUrlList[(count++) % imgUrlList.length],}};return newList;
}Page({data: {// 顶部列表数据topList: new Array(15).fill(0),// 底部列表数据bottomList: getNewList(),// 网络布局参数crossAxisCount: 2,crossAxisGap: 8,mainAxisGap: 8,// 顶部布局参数menuTop: 0,menuHeight:0,menuLeft:0},onLoad() {const res = wx.getMenuButtonBoundingClientRect();this.setData({menuTop: res.top,menuHeight: res.height,menuLeft: res.width + 10})},bindSrollToLower() {this.setData({bottomList: this.data.bottomList.concat(getNewList())})},})

4. 以下是上面JavaScript代码中引入的本地模拟数据文件data.js代码:

// data.jsconst landscapeList = ['https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYfaqohk6ndcC6_CBkUZszfSpKbqUAV7S2xWRbAQ459YsPWAmLKkicEOPS1L3NmnnRA','https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYYjda9Dp372N3T05q_nn3PgvoXBoReXvaXBfkthtXQLN7m5_YI6FoTre-xvJBDFLMA','https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYfa6mRnywhNbBFV5eAt7oTz3zjlNJeujfQx0PVA1ufenPHBvxYXRNJ5chyi6RPaE7A','https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYYY1OalScOn4EMcQpkPaJ1Sxhri8CScjnhqVfjAZnLuVFl0JAM4VziHhSzHLZXtAaQ','https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYZB1p48LLH-Pc7Rzr4nN0YF-uZg7FW7zksw_Kjp0BNDHcZp9R9SRKbg0rA1HBaeK3Q','https://res.wx.qq.com/op_res/0-l2fyKjv3_BR62E3KwTJPRaN5CDI6NZFg_qbSxeqF8UBpM4lXJ_1o9S9bsOOxMpuXGLeKyAKleWlAXmVLmQOw','https://res.wx.qq.com/op_res/7_miJnK0wxIrh5bV2QqvYRu0VRyVvePJ4pB4_Dvj0ytF-ovjQzMl6WMLyuCeKk3579HNjKLIeNrHE7OprTBx5w'
]export function getLandscapeImages() {return landscapeList
}

5. 以下是页面配置文件代码:

{"usingComponents": {},"disableScroll": true,"navigationStyle": "custom"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/449842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue全家桶之路由管理Vue-Router

一、前端路由的发展历程 1.认识前端路由 路由其实是网络工程中的一个术语&#xff1a; 在架构一个网络时&#xff0c;非常重要的两个设备就是路由器和交换机。当然&#xff0c;目前在我们生活中路由器也是越来越被大家所熟知&#xff0c;因为我们生活中都会用到路由器&#…

算法练习-左叶子之和(思路+流程图+代码)

难度参考 难度&#xff1a;中等 分类&#xff1a;二叉树 难度与分类由我所参与的培训课程提供&#xff0c;但需要注意的是&#xff0c;难度与分类仅供参考。且所在课程未提供测试平台&#xff0c;故实现代码主要为自行测试的那种&#xff0c;以下内容均为个人笔记&#xff0c;旨…

高级编程 (1)

Linux软件编程: 1.Linux: 操作系统的内核 1.管理CPU 2.管理内存 3.管理硬件设备 4.管理文件系统 5.任务调度 2.Shell: 1.保护Linux内核(用户和Linux内核不直接操作,通过操作Shell,Shell和内核交互) 2.命令解释器 3.Shell命令: …

不是,哎呦~~,你怎么还是不会字母大小写的相互转化啊~

不是&#xff0c;哎呦~~&#xff0c;你怎么还是不会字母大小写的相互转化啊~~~ -------菜&#xff0c;就多练&#xff0c;以前是以前&#xff0c;现在是现在&#xff0c;以前不会不代表之后不会&#xff0c;赶紧看看怎么转化吧&#xff01;&#xff01;&#xff01; 接下来我会…

接口自动化测试详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 引言 与UI相比&#xff0c;接口一旦研发完成&#xff0c;通常变…

【TCP】四次挥手(终止连接)

前言 TCP&#xff08;传输控制协议&#xff09;是互联网协议&#xff08;IP&#xff09;中的一种重要传输层协议&#xff0c;用于在通信的计算机之间建立可靠的、有序的和错误校验的数据传输。在TCP连接中&#xff0c;数据传输是双向的&#xff0c;因此需要一种机制来开始和结…

前端面试拼图-数据结构与算法

摘要&#xff1a;总结一些前端算法题&#xff0c;持续更新&#xff01; 一、数据结构与算法 时间复杂度-程序执行时需要的计算量&#xff08;CPU&#xff09; 空间复杂度-程序执行时需要的内存空间 前端开发&#xff1a;重时间&#xff0c;轻空间 1.把一个数组旋转k步 arr…

第14章_视图

第14章_视图 1.常见的数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记录数据字典就是系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常由数据库系统维护&#xff0c; 程序员通常不…

NUXTJS安装始终报错无法正常运行问题解决

近日在了解NuxtJS&#xff0c;按照官方给出方法进行安装后&#xff0c;不是报错&#xff0c;就是安装成功后运行不了。执行npm run dev后始终运行出错&#xff0c;判断肯定是对应版本问题&#xff0c;沿着这方向研究&#xff0c;最终运行成功了。 文档地址&#xff1a;安装 - …

一篇文章解决你的无线AP选型难题:从入门到精通

无线网络覆盖项目中&#xff0c;无线AP的合理选型和部署非常重要。今天给大家安排。 这篇文章&#xff0c;给你总结了6类典型的无线组网场所&#xff0c;针对每种场景的特点&#xff0c;给出相应的设备选型和部署的方案&#xff0c;同时整理了一些部署无线AP过程中容易忽略的细…

爬虫笔记(三):实战qq登录

咳咳&#xff0c;再这样下去会进橘子叭hhhhhh 以及&#xff0c;这个我觉得大概率是成功的&#xff0c;因为测试了太多次&#xff0c;登录并且验证之后&#xff0c;qq提醒我要我修改密码才可以登录捏QAQ 1. selenium 有关selenium具体是啥&#xff0c;这里就不再赘述了&#x…

奇瑞瑞虎8,是真不能随便碰

文 | AUTO芯球 作者 | 李虎 我是实在看不下去了啊 这奔驰车主砸车 现在开始反转了啊 但卡住我喉咙的是定损5200的奇瑞引擎盖啊 我是真买不起&#xff0c;也不敢买啊 我怕A柱断了&#xff0c;要修20万啊 但我一算&#xff0c;这也不对啊 顶配的报价也只有16.18万啊 如果…