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


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 相关文章推荐
JavaScript 使用技巧精萃(.net html
Apr 25 Javascript
JavaScript 大数据相加的问题
Aug 03 Javascript
深入理解javaScript中的事件驱动
May 21 Javascript
js使下拉列表框可编辑不止是选择
Dec 12 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
jquery使用hide方法隐藏指定id的元素
Mar 30 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
Aug 31 Javascript
AngularJS 使用 UI Router 实现表单向导
Jan 29 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
超详细小程序定位地图模块全系列开发教学
Nov 24 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实现小程序支付完整版
2018/10/09 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
Javascript中的数学函数集合
2007/05/08 Javascript
javascript div 弹出可拖动窗口
2009/02/26 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
商务英语专业求职信范文
2014/01/28 职场文书
领导党性分析材料
2014/02/15 职场文书
项目申请汇报材料
2014/08/16 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
医生个人年度总结
2015/02/28 职场文书
用Python实现Newton插值法
2021/04/17 Python
浅谈Redis的几个过期策略
2021/05/27 Redis
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript