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


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定时器详解及实例
Aug 01 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
深入浅析search 搜索框的写法
Aug 02 Javascript
关于List.ToArray()方法的效率测试
Sep 30 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
May 10 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 Javascript
cypress测试本地web应用
Jun 01 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 获取百度的热词数据的代码
2012/02/18 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
Javascript的一种模块模式
2008/03/22 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
python如何求100以内的素数
2020/05/27 Python
在keras中实现查看其训练loss值
2020/06/16 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
董事长职责范文
2013/11/08 职场文书
法学院方阵解说词
2014/01/29 职场文书
小学语文教学反思
2014/02/10 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
优秀班组事迹材料
2014/12/24 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript
Java版 简易五子棋小游戏
2022/05/04 Java/Android