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

 更新时间:2019年12月13日 10:52:01   作者:Alan.hsiang  
这篇文章主要介绍了微信小程序之左右布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文以一个简单的小例子,简述在微信小程序开发中左右布局功能的实现方式,主要涉及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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在网页中插入百度地图的步骤详解

    在网页中插入百度地图的步骤详解

    在企业网站中常会看到企业地址会显示在地图上,那么,如何实现这种功能呢?本篇文章就主要介绍在网页中插入百度地图的步骤,下面就随小编一起来看看吧
    2016-12-12
  • 详解微信小程序实现跑马灯效果(附完整代码)

    详解微信小程序实现跑马灯效果(附完整代码)

    这篇文章主要介绍了微信小程序跑马灯效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • js实现简易的单数字随机抽奖(0-9)

    js实现简易的单数字随机抽奖(0-9)

    这篇文章主要介绍了js实现简易的单数字0-9随机抽奖,可以控制抽取随机数开始与停止,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • Webpack中Source Map配置深入解析

    Webpack中Source Map配置深入解析

    这篇文章主要为大家介绍了Webpack中Source Map配置深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Fuse.js模糊查询算法学习指南

    Fuse.js模糊查询算法学习指南

    这篇文章主要为大家介绍了Fuse.js模糊查询算法学习指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • el-popover放在el-table中点击无反应问题解决方案

    el-popover放在el-table中点击无反应问题解决方案

    我们想在table中给btn加弹框但是 el-popover点击按钮没有任何反应,解决思路是通过给每个el-popover都加上单独的id,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2024-04-04
  • 用JS实现一个简单的打砖块游戏

    用JS实现一个简单的打砖块游戏

    这篇文章主要介绍了用JS实现一个简单的打砖块游戏,代码分为html+css+js三部分,具体实例代码感兴趣的朋友跟随小编一起看看吧
    2019-12-12
  • JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    这篇文章主要介绍了在JS中函数参数是传值(byVal)还是传址(byRef)的误区我们通过实例说明一下,有需要的朋友可以参考
    2013-07-07
  • JS实现网页时钟特效

    JS实现网页时钟特效

    这篇文章主要为大家详细介绍了JS实现网页时钟特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • js实现简易的英汉词典

    js实现简易的英汉词典

    这篇文章主要为大家详细介绍了js实现简易的英汉词典,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论