微信小程序开发之左右分栏效果的实例代码


Posted in Javascript onMay 20, 2019

本文以一个简单的小例子,简述在微信小程序开发中左右分栏功能的实现方式,主要涉及scroll-view ,列表数据绑定,及简单样式等内容,属于初级入门内容,仅供学习分享使用。

概述

在微信小程序开发中,左右分栏(左边显示分类,右边显示明细,然后进行联动)是一种常见的布局方式,多应用于点餐,冷饮店,外卖,以及其他类似的商城。

布局分析

布局分析图示如下:

微信小程序开发之左右分栏效果的实例代码

涉及知识点

•scroll-view 可滚动视图区域。使用竖向滚动时,需要给<scroll-view>一个固定高度,通过 WXSS 设置 height。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。
•scroll-y  是否允许纵向滚动,默认false。
•scroll-into-view  值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素(动态更新该属性的值,实现左右联动)。
•view 基础控件。
•hover-class   设置指定按下去的样式类。当 hover-class="none" 时,没有点击态效果。
•wx:for 在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item。
•bindtap='showItem' 绑定组件的单击事件,不加括弧。

示例效果图

示例效果图如下所示:

微信小程序开发之左右分栏效果的实例代码

核心代码

WXML代码如下:

<!--pages/show/show.wxml-->
<view class="show-info">
 <scroll-view class='left' scroll-y>
 <view class="jy-item" wx:for="{{jytype}}" wx:key="id" hover-class="jy-item-hover" wx:for-item="item" bindtap='showItem' data-id="{{item.id}}">
 <image src="{{item.url}}"></image>
 <label>{{item.name}}</label>
 </view>
 </scroll-view>
 <scroll-view class='right' scroll-y scroll-into-view="{{viewId}}">
 <view class="jy-detail" wx:for="{{jydetail}}" wx:key="id" id= "D-{{detail.typeid}}-{{detail.id}}" wx:for-item="detail" bindtap='showDetail' data-id="{{detail.id}}">
 <image src="{{detail.url}}"></image>
 <label>{{detail.name}}</label>
 </view>
 </scroll-view>
</view>

JS代码如下:

showItem: function(event) {
 var that=this;
 var viewId = "D-" + event.currentTarget.dataset.id + "-" + event.currentTarget.dataset.id+"00";
 that.setData({
 viewId: viewId
 });
 console.log(viewId);
 },

WXSS布局如下,此处主要用到了盒子布局(display: flex;flex-direction: row;):

.show-info {
 height: 100%;
 display: flex;
 flex-direction: row;
 align-items: flex-start;
 padding: 10rpx 0;
 box-sizing: border-box;
}

.left {
 width: 30%;
 height: 100%;
 display: flex;
 flex-direction: column;
 margin:2px;
}
.jy-item-hover{
 border: none;
}
.right {
 width: 70%;
 height: 1200rpx;
 display: flex;
 flex-direction: column;
 margin: 2px;
}

总结

以上所述是小编给大家介绍的微信小程序开发之左右分栏效果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
javascript运算符语法全面概述
Jul 14 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
基于wordpress的ajax写法详解
Jan 02 Javascript
vue router+vuex实现首页登录验证判断逻辑
May 17 Javascript
js代码规范之Eslint安装与配置详解
Sep 08 Javascript
Node.js操作系统OS模块用法分析
Jan 04 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 Javascript
vue iview实现动态新增和删除
Jun 17 Javascript
微信小程序rich-text富文本用法实例分析
May 20 #Javascript
bootstrap中的导航条实例代码详解
May 20 #Javascript
详解小程序云开发数据库
May 20 #Javascript
VUE脚手架具体使用方法
May 20 #Javascript
Vue CLI2升级至Vue CLI3的方法步骤
May 20 #Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 #Javascript
微信小程序上传文件到阿里OSS教程
May 20 #Javascript
You might like
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
js 自定义个性下拉选择框示例
2013/08/20 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Element Input组件分析小结
2018/10/11 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
办护照工作证明
2014/10/01 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
校友回访母校寄语
2015/02/26 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers