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


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 相关文章推荐
jQuery随机切换图片的小例子
Apr 18 Javascript
js switch case default 的用法示例介绍
Oct 23 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
基于 webpack2 实现的多入口项目脚手架详解
Jun 26 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
Javascript获取某个月的天数
May 30 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 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/02/10 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
javascript中的new使用
2010/03/20 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python实现SMTP邮件发送
2020/06/16 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
国际领先的学术出版商:Springer
2017/01/11 全球购物
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
汽车维修工岗位职责
2014/02/12 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
投标诚信承诺书
2014/05/26 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年组织部工作总结
2014/11/14 职场文书
给老师的感谢信
2015/01/20 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS