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


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 相关文章推荐
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
jquery ready函数、css函数及text()使用示例
Sep 27 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
javascript中CheckBox全选终极方案
May 20 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
May 09 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
vue-cli之router基本使用方法详解
Oct 17 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
vue router 跳转后回到顶部的实例
Aug 31 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 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
PHP分页显示制作详细讲解
2008/11/19 PHP
php的一些小问题
2010/07/03 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
python绘图库Matplotlib的安装
2014/07/03 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
如何利用python进行时间序列分析
2020/08/04 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
教育实习指导教师评语
2014/12/31 职场文书
教师个人自我评价
2015/03/04 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
Python进度条的使用
2021/05/17 Python
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
python编程实现清理微信重复缓存文件
2021/11/01 Python