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


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 相关文章推荐
神奇的代码 通杀各种网站-可随意修改复制页面内容
Jul 17 Javascript
jQuery1.6 使用方法二
Nov 23 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
angular仿支付宝密码框输入效果
Mar 25 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
vue中利用Promise封装jsonp并调取数据
Jun 18 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
Jul 25 Javascript
layui的select联动实现代码
Sep 28 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 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 jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
animate.css在vue项目中的使用教程
2018/08/05 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Python扩展内置类型详解
2018/03/26 Python
学习Django知识点分享
2019/09/11 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
django创建css文件夹的具体方法
2020/07/31 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
安全生产管理合理化建议书
2014/03/12 职场文书
学校与家长安全责任书
2014/07/23 职场文书
公司股份合作协议书
2014/12/07 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
详细介绍python类及类的用法
2021/05/31 Python
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL