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


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 相关文章推荐
js中iframe调用父页面的方法
Oct 30 Javascript
js实现双击图片放大单击缩小的方法
Feb 17 Javascript
Java File类的常用方法总结
Mar 18 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
jQuery事件处理的特征(事件命名机制)
Aug 23 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
js中的面向对象入门
Mar 06 Javascript
快速使用node.js进行web开发详解
Apr 26 Javascript
JavaScript实现自动跳转文本功能
May 25 Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
Nov 11 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
服务器web工具 php环境下
2010/12/29 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
Python和Go语言的区别总结
2019/02/20 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
Python中一般处理中文的几种方法
2019/03/06 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
Java程序员面试90题
2013/10/19 面试题
师范生自荐信
2013/10/27 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
七年级地理教学反思
2014/01/26 职场文书
审计主管岗位职责
2014/01/31 职场文书
学习两会精神心得范文
2014/03/17 职场文书
诚信贷款承诺书
2014/05/30 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
坎儿井导游词
2015/02/09 职场文书
中班上学期个人总结
2015/02/12 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
Python函数式编程中itertools模块详解
2021/09/15 Python
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫