微信小程序实现跟随菜单效果和循环嵌套加载数据


Posted in Javascript onNovember 21, 2017

本文实例为大家分享了微信小程序实现跟随菜单效果、微信小程序循环嵌套加载数据,供大家参考,具体内容如下

效果如图:

微信小程序实现跟随菜单效果和循环嵌套加载数据

代码如下:

wxml

//使用循环嵌套data数据格式写对即可
<scroll-view class="left" scroll-y>  
  <view wx:for="{{left}}" class="leftlist {{index==_click?'yes':''}}" data-i="{{index}}" bindtap="tap">
   {{item.txt}}
  </view>
 </scroll-view>

<scroll-view class="right" scroll-y bindscroll="scroll" scroll-into-view="{{toView}}">
  <view id="{{item.id}}" wx:for="{{right}}">

   <view class="title">
    <text class="line"></text>
    {{item.txt}}
    <text class="line"></text>
   </view> 

   <view class="li" wx:for="{{item.li}}">
    <image src="{{item.src}}"></image>
    <text class="name">{{item.name}}</text>
   </view>

  </view>
 </scroll-view>

js

Page({
 data: {
  toView: 'red1',
  _click:0,
  left: [{ txt: '新品', id: 'new' }, { txt: '手机', id: 'phone' }, { txt: '电视', id: 'mv' }, { txt: '电脑', id: 'computer' }],
  right: [
   { txt: '新品', id: 'new',li: [{ src: '../../assets/images/max1.jpg', name: '小米noto' }, { src: '../../assets/images/max1.jpg', name: '小米mix' }, { src: '../../assets/images/max3.jpg', name: '小米5c' }, { src: '../../assets/images/max2.jpg', name: '小米notp' }, { src: '../../assets/images/max2.jpg', name: '小米note5' }, { src: '../../assets/images/max2.jpg', name: '小米6' }]}, 
   { txt: '手机', id: 'phone',li: [{ src: '../../assets/images/max2.jpg', name: '小米6s' }, { src: '../../assets/images/max3.jpg', name: '小米max' }, { src: '../../assets/images/max2.jpg', name: '小米5s' }, { src: '../../assets/images/max1.jpg', name: '小米li' }, { src: '../../assets/images/max3.jpg', name: '小米4' }, { src: '../../assets/images/max1.jpg', name: '小米max' }]}, 
   { txt: '电视', id: 'mv', li: [{ src: '../../assets/images/max3.jpg', name: '小米6' }, { src: '../../assets/images/max2.jpg', name: '小米mix' }, { src: '../../assets/images/max1.jpg', name: '小米7s' }, { src: '../../assets/images/max3.jpg', name: '小米2' }, { src: '../../assets/images/max1.jpg', name: '小米note7' }, { src: '../../assets/images/max3.jpg', name: '小米8' }] }, 
   { txt: '电脑', id: 'computer', li: [{ src: '../../assets/images/max1.jpg', name: '小米2' }, { src: '../../assets/images/max1.jpg', name: '小米mix' }, { src: '../../assets/images/max2.jpg', name: '小米max' }, { src: '../../assets/images/max1.jpg', name: '小米6' }, { src: '../../assets/images/max3.jpg', name: '小米note' }, { src: '../../assets/images/max1.jpg', name: '小米max' }] }]
 },

 scroll: function (e) {
  console.log(e)//右侧列表滑动-左侧列表名称样式跟着改变,然而我不会写,搁置中,谁会告诉我,谢谢!
 },
 tap: function (e) { 
  var j = parseInt(e.currentTarget.dataset.i);
  this.setData({
   toView: this.data.left[j].id,//控制视图滚动到为此id的<view>
   _click:j           //控制左侧点击后样式
    })
 },
})

wxss

page{border-top:1px solid #f6f6f6;}

.left{
 height:100%;
 width: 19%;
 display: inline-block;
 background:#fff;
 text-align:center;
 border-right:1px solid #eee;
 }
.leftlist{
 font-size:12px;
 padding:10px;
 }

.right{
 height:100%;
 width: 80%;
 display: inline-block;
 background:#fff;
 text-align:center;
 }

.line{
 width:15px;
 height:1px;
 background:#ddd;
 display:inline-block;
 vertical-align:super;
 margin:0 15px;
}

.li{ 
 height:10%;
 width:30%;
 display:inline-block;
 text-align:center;
}

.li image{width:60px;height:60px;}

.li .name{
 font-size:12px;
 display:block;
 color:#888;
 overflow:hidden;
 white-space:nowrap;
 text-overflow:ellipsis;
}

.title{padding:20px 0;}
.yes{color: #f99;font-size: 14px;}

友情提示:

1、左侧点击样式改变:

利用自身index与点击的元素的index比较。
data-i=“{{获取当前index传给_click保存}}”,
class=”leftlist {{index==_click?'yes':”}}”,
此处index是自身的,如果自身和点击的一致就添加,yes类名,否侧滞空清除yes样式。

2、点击左侧,右侧跟随:

利用scroll-into-view=”{{id}}”, 视图会滚动到id为此id的view标签。我是直接从data数据里取得id,也可以直接获取点击元素id。

3、循环嵌套:data数据格式写对,按照官方文档就行。

Javascript 相关文章推荐
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
Apr 28 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
Sep 28 Javascript
微信小程序实现的动态设置导航栏标题功能示例
Jan 31 Javascript
JavaScript中filter的用法实例分析
Feb 27 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
Jun 25 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
基于bootstrap写的一点localStorage本地储存
Nov 21 #Javascript
微信小程序实现下拉刷新和轮播图效果
Nov 21 #Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
Nov 21 #Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 #Javascript
微信小程序实现tab切换效果
Nov 21 #Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 #jQuery
IntelliJ IDEA 安装vue开发插件的方法
Nov 21 #Javascript
You might like
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php字符串截取的简单方法
2013/07/04 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
Python实现堆排序的方法详解
2016/05/03 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
转换科学计数法的数值字符串为decimal类型的方法
2018/07/16 Python
python跳出双层for循环的解决方法
2019/06/24 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
教师职称自我鉴定
2014/02/12 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
节能环保口号
2014/06/12 职场文书
文秘应届生求职信
2014/07/05 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书