案例:通讯录

 list.wxml

<view class="list_wrap"><scroll-view class="list_scroll" scroll-with-animation bindscroll="handleScroll" scroll-y scroll-into-view="{{currentKey}}"><!-- 汽车首写字母 --><view wx:for="{{list}}"wx:key="{{index}}"class="list_title"id="{{item.key}}"><text class="bscroll_title">{{item.key}}</text><!-- 汽车名字 --><view wx:for="{{item.row}}"wx:key="{{index}}"wx:for-item="conItem"wx:for-index="i"class="listcon_box"><view class="image"><image src="{{conItem.img}}"/></view><text class="list_con">{{conItem.name}}</text></view></view><view class="bb"></view></scroll-view ><!-- 导航列表 --><view class="navList"><viewwx:for="{{list}}"wx:key="{{index}}"bindtap="handleNav"data-key="{{item.key}}">        //判断如果滑动的下标==导航列表的下标?'active':''<text class="{{currentIndex==index?'active':''}}">{{item.key}}</text></view></view>
</view>

list.wxss

page{height: 100%;background: #eee;} //必须设置高度为100%
.list_wrap{height: 100%} //必须设置高度100%
.list_scroll{height: 100%} //必须设置高度100%
.listcon_box{width: 100%;height: 50px;background: #fff;display: flex;border-bottom: solid 1px #eee;}
.bscroll_title{padding-left: 10px;height: 40px;}
.image{flex: 1;display: flex;justify-content: center;align-items: center;}
.image image{width: 30px;height:30px;}
.list_con{flex: 9;padding-left: 10px;display: flex;align-items: center;}.active{color: cornflowerblue;}
.bb{height: 100%;}.navList{position: fixed;height: 100%;top:20px;right: 15px;}

 list.js

// pages/list/list.js
Page({/*** 页面的初始数据*/data: {// 全部数据list:[],// 每天滚动列表的高度listItemTops:[],// 添加高亮currentIndex:0,// 点击navcurrentKey:"A"},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {wx.request({url: 'https://www.easy-mock.com/mock/5ceb8bac32cfe337f96fe748/example/car',success:(res)=>{console.log(res.data.data.items)this.setData({list:res.data.data.items},()=>{const query=wx.createSelectorQuery();query.selectAll('.list_title').boundingClientRect((res) => {// console.log(res)//可以获取到每条列表高度this.setData({listItemTops: res.map(item => item.top)})}).exec()})}})},// 列表滚动事件handleScroll(e){// console.log(e)let scrollTop = e.detail.scrollTop;let {listItemTops}=this.data  //为了给导航栏添加样式  //循环每个列表距离顶部的距离for (var i = 0; i < listItemTops.length-1;i++){    //判断滚动页面的距离>=对应列表距离顶部的距离if(scrollTop>=listItemTops[i]){this.setData({currentIndex:i})}}},// 点击导航nav事件handleNav(e){console.log(e)let { key } = e.currentTarget.dataset   //设置这个currentKey是为了在页面scroll-into-view添加,只有加了这个点击导航时才会动this.setData({currentKey:key})},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})

  

转载于:https://www.cnblogs.com/linmiaopi/p/11203230.html

微信Bscroll事件相关推荐

  1. 微信关注事件bug记录

    微信平台关注事件bug 前提描述:用户在关注公众号后,进入公众号绑定的微商城购买了商品,生成订单: 当用户再次关注或取消关注该公众号:subscribe/unsubscribe 关注事件在有些时候居然 ...

  2. 微信开发 事件 trim subscribe

    今天 学习微信开发 学习到 关注事件 $event = $postObj->Event;if(trim($event) === "subscribe"){$msgType = ...

  3. C#企业微信 接收事件服务器(添加外部联系人事件)#openapi回调地址请求不通过# 完整源代码

    #设置接收事件服务器 #openapi回调地址请求不通过? #企业微信api #添加外部联系人事件 using System.Web.UI.WebControls; using System.IO; ...

  4. java如何监听微信关注事件,Java后端接收用户关注以及发送消息或者取消微信公众号的操作...

    请求的Controller import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import ...

  5. android微信keydown事件的keyCode为0情况下JS输入约束实现

    因为微信不支持keypress事件,keydown/keyup的keycode又为0,没有办法通过这些事件事约束输入,所以,通过input事件变通实现. 原理很简单,每次输入时,记录下光标位置和上一次 ...

  6. 微信收费事件背后被广泛忽略的技术细节

    作为一个横跨通信与互联网两大行业的从业者,前四年的核心网经验和后五年的互联网经验让我不得不感慨一个非常遗憾的现实:通信与互联网两大行业本来可以有珠联璧合的技术协同,为移动互联网提供近乎零耗电零流量的P ...

  7. php 关注微信触发事件,微信api 关注事件

    header('Content-type: text/html; charset=utf-8');#设置头信息 require_once('zhphpWeixinApi.class.php');#加载 ...

  8. 对一次微信升级事件的自我反省:思维方式决定解决问题能力

    事情经过大概如下. 2017年3月5号,周日,广州.难得小雨停歇,外出赏春.乘车时发现我的羊城通余额不足20块了,该充值了(通常来说,当余额不足30的时候我就提醒自己及时充值,以免出现紧急情况,去窗口 ...

  9. 关于微信开放平台授权事件接收Url的配置以及参数接收

    关于微信开放平台如何申请,如何配置,如何全网发布的文章,大神们已经写了很多,不想再造轮子,特针对微信授权事件的处理这一个点,对自己遇到的坑进行总结,也希望能给着手做微信开放平台的小伙伴们提供一份简单的 ...

  10. 微信公众号:关注取关事件

    1.需求:关注取关发送用户消息 微信操作事件回调 回调地址需要在微信公众号配置 (1)controller /*** 微信操作事件回调* @param request* @return*/@Reque ...

最新文章

  1. 浅谈Python Web的五大框架
  2. python学习实例(1)
  3. unity2019 vuforia 使用小记
  4. php视频直播技术,PHP写在线视频直播技术详解
  5. 三极管饱和及深度饱和状态的理解和判断!
  6. 阿里云企业邮箱:密码登录
  7. 线性回归(线性拟合)与非线性回归(非线性拟合)原理、推导与算法实现(一)
  8. 安全测试(BurpSuite)常见检查点
  9. java中if条件函数怎么用_if函数,多个条件怎么使用
  10. js获取当前时间的前几天时间
  11. 改善记忆力的二十种记忆方法,随便你挑!
  12. html浏览默认ie8,ie8设置默认浏览器
  13. 交换机路由器端口配置
  14. Microsoft Edge 中的ie浏览器图标、右击新标签页打开功能的关闭方法
  15. 学堂在线-清华大学-操作系统实验Lab1【练习5-6】
  16. Python 修改AD账号密码(一)- 启用域控LDAPS
  17. js给json对象添加、删除、修改属性
  18. java中workbook_java workbook 类
  19. windows-运维-11 windows小技巧
  20. JPG文件头结构介绍

热门文章

  1. Android系统架构与系统源码目录
  2. 推荐系统的常用算法原理和实现
  3. word绿豆沙颜色设置_Win7系统下将txt和word背景颜色设置为豆沙绿的方法
  4. 中间件——《中间件技术原理及应用》考试复习重点
  5. 电商项目测试核心内容
  6. MATLAB基本语法
  7. MovieLens 1M 数据集
  8. PDF在线预览插件:PDFObject web端预览(不支持手机网页预览,手机网页预览见下一篇博客);
  9. 车牌限行——条件分歧
  10. JavaScript 动态生成表格 案例