微信小程序之左右布局的实现代码


Posted in Javascript onDecember 13, 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 相关文章推荐
JQuery 绑定事件时传递参数的实现方法
Oct 13 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
Vue.js表单控件实践
Oct 27 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
详解Angular 4.x Injector
May 04 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
JS实现图片居中悬浮效果
Dec 25 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
vue实现输入一位数字转汉字功能
Dec 13 #Javascript
小程序登录之支付宝授权的实现示例
Dec 13 #Javascript
小程序使用wxs解决wxml保留2位小数问题
Dec 13 #Javascript
微信小程序点击保存图片到本机功能
Dec 13 #Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 #Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 #Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 #Javascript
You might like
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python实现的石头剪子布代码分享
2014/08/22 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
先进德育工作者事迹材料
2014/01/24 职场文书
中学校庆方案
2014/03/17 职场文书
开幕式邀请函
2015/01/31 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python