文章目录

  • 前言
    • 展示效果
    • 代码分析
    • wxml
  • 总结

前言

实现通讯录索引的关键就是使用好3个触发事件 bindtouchstart、bindtouchend和bindtouchmove。

展示效果

代码分析

bindtouchstart 显示字母栏选中效果

  //点击开始getIndex: function (e) {console.log('点击开始')console.log(e)this.setData({showSus: true,tempIndex: e.currentTarget.dataset.index})}

bindtouchmove 的事件返回参数中是可以得到所滑动到的位置坐标的
利用简单的计算得到我们的滑动到了哪里

  // 滑动中toMove: function (e) {console.log('滑动中')var clientY = e.touches[0].clientY;var index = 0;if (clientY > 150 && clientY < 490) {     //在滑动区域内index = parseInt((clientY - 151) / 13); //13就是每个字母块儿的高度if (index >= 0 && index <= 25) {      //避免出现误差 index在0-25中this.setData({tempIndex: index})}}},

bindtouchend 结束整个滑动动作并作出异常判断

  // 滑动中toEnd: function () {console.log('滑动结束')this.setData({showSus: false})//当滑动结束时的字母分组无人时 不发生跳转if (this.data.contactList[this.data.tempIndex].nameList.length != 0) {console.log(this.data.tempIndex)this.setData({letterId: this.data.tempIndex,})}},

wxml

<scroll-view scroll-y class="height100" style="margin-top:{{CustomBar}}px" scroll-with-animation="true" enable-back-to-top="true" scroll-into-view='sw{{letterId}}' ><view class="index-title" id="sw{{index}}" hidden="{{!(item.nameList.length!=0)}}" wx:for="{{contactList}}" wx:for-item="item"><view class="tip">{{item.tip}}</view><view  wx:for="{{item.nameList}}" class="name-item flxr aic" wx:for-item="col"><view class="head">{{item.tip}}</view><view class="name ml20">{{col.name}}</view></view></view></scroll-view>
<view class="index-list flxc" bindtouchend="toEnd" bindtouchmove="toMove"><view class="index-list-item {{}}" wx:for="{{letterList}}" bindtouchstart="getIndex"  data-index="{{index}}">{{item}}</view><view wx:if="{{showSus}}" class="xuanfu">{{letterList[tempIndex]}}</view>
</view>

代码下载链接————下载链接

总结

至此我们的通讯录索引就实现了。

微信小程序——通讯录索引实现相关推荐

  1. 微信小程序通讯录功能;uni-app微信小程序通讯录单选;uni-app微信小程序通讯录多选;uni-app微信小程序通讯录好友功能;uni-indexed-list使用;通讯录高度修改;

    介绍:项目使用的是uni-app做的微信小程序:uni-app里原来就用一个组件uni-indexed-list,是用来做通讯录的:可以直接看官方案例也就是hello-uniapp-master下的导 ...

  2. 关于微信小程序通讯录人名分组的实现

    引言 最近实现的一个小程序需要制作一个通讯录,我参考的标准肯定是微信的界面啊,下面介绍一下我界面的实现和操作 页面实现 我发现vant里面的indexBar能够实现这个界面功能 文字转拼音实现分组 我 ...

  3. 微信小程序 数组索引 data-“”解释

    按照官方最新文档循环的方式,索引值是以  wx:for-index="index" 方式写的, 以   parseInt(event.currentTarget.dataset.i ...

  4. 微信小程序字母索引菜单

    wxml文件 <view class="container"><view class="content"><view class= ...

  5. 微信小程序通讯录列表

    wxm文件 css文件

  6. 微信小程序学习(1)-基础开发

    学习微信小程序 微信小程序学习(1) 微信小程序学习(2) 文章目录 学习微信小程序 注册和初始化 小程序配置 tabbar导航栏 模板插样与WXML 循环渲染 条件渲染 模板 微信小程序脚本WXS ...

  7. 03_心理咨询_微信小程序项目实战_首页静态效果实现

    一.导航栏和tabBar 1.1 全局配置介绍 微信小程序端中实现导航栏和tabBar,是通过配置实现的:这是区别于移动端开发的点: 参考文档: https://developers.weixin.q ...

  8. 微信小程序资料集(中)

    **12月1日小程序Demo集合** [微信小程序Demo:金融理财计算器](简书) [微信小程序Demo:支付宝+微信二维码收款小程序](简书) [上滑导航吸顶效果](简书) [微信小程序Demo: ...

  9. 微信小程序|使用小程序实现通讯录功能,首字母快捷导航

    基于微信小程序的通讯录功能,通过右侧首字母实现快捷导航效果 前言:使用快速导航栏迅速找到关键信息,给程序的使用上增加一些技巧. 目录 一.功能介绍 二.小程序效果图 三.实现步骤 四.完整代码 一.功 ...

最新文章

  1. Javascript动画效果(四)
  2. 元数据驱动的微服务架构(上)
  3. python爬取公众号推荐_python爬搜狗微信获取指定微信公众号的文章
  4. cpld xilinx 定义全局时钟_AutoSAR中的时钟同步机制
  5. 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )
  6. coo_maxtrix保存到本地
  7. echarts如何获取后端的值_Echarts 获取后台数据 使用后台数据展示 柱形图
  8. 满分简便代码:1009 说反话 (20分)
  9. hadoop27---netty中handler的执行顺序
  10. java 定时执行任务
  11. 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm》代码调试
  12. UnrealScript语言基础
  13. 深入理解空指针(C++)
  14. android .9图片如何引用,Android调用相机拍照并返回路径和调用系统图库选择图片...
  15. mysql2008无法启动_SQL Sever2008r2 数据库服务各种无法启动的解决办法
  16. 【软件测试基础】软件测试模式
  17. 计算机网络中属于通信子网,计算机网络通常被划分为通信子网和资源子网,通信子网提供信息传输服务,资源子网提供共享资源。...
  18. 新安装Win10操作系统有必要设置的几个技巧
  19. 什么流读取MultipartFile_IO流 - ShelterY
  20. BugKu Web题《网站被黑》writeUp

热门文章

  1. 机器学习——决策树(一)
  2. 干货 | 使用TLA+和PlusCal增强产品的可靠性
  3. MAC10.15 Python下matplotlib字体配置
  4. 动态爱心--HTML源码
  5. Java分布式系统---消息中间件
  6. 计算机工程 排版,《计算机工程与设计》稿件模板-正文标题不超过20个字,不.PDF...
  7. mysql每个月数据按天行转列_Mysql 中使用DATE_FORMAT函数按月、周统计数据
  8. 3D照片墙源码(直接使用)
  9. 数据库异常用户sa登录失败_验证密码失败:连接数据库服务器的SQL SERVER失败(密码可能不正确)错误信息,用户SA登录失败?-这是什么意思?...
  10. HTML:网页设计案例2