我的编程空间,编程开发者的网络收藏夹
学习永远不晚

小程序如何自定义索引菜单

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

小程序如何自定义索引菜单

本文小编为大家详细介绍“小程序如何自定义索引菜单”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序如何自定义索引菜单”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

小程序如何自定义索引菜单

<view class="indexes_chunk" wx:for="{{brandIndexList.brandGroupList}}" wx:key="item">     <view class="letter ancehor-{{item.indexLetter}}">{{item.indexLetter}}</view>     <view class="choice" wx:for="{{item.brandList}}" wx:for-item="items" wx:key="items" wx:for-index="cindex">          <text class="text actives">{{items.enName}}{{items.cnName}}</text>          <text class="iconfont icon-gouxuan"></text>   </view></view>

主要代码:

function throttle(fn, interval) {    var enterTime = 0;//触发的时间    var gapTime = interval || 300 ;//间隔时间,如果interval不传,则默认300ms    return function() {      var context = this;      var backTime = new Date();//第一次函数return即触发的时间      if (backTime - enterTime > gapTime) {        fn.call(context,arguments);        enterTime = backTime;//赋值给第一次触发的时间,这样就保存了第二次触发的时间      }    };};data:{      brandIndexList:{            brandGroupList:[                {                    brandList:[                        {brandId:1, cnName: "爱马仕A", enName: "Hermes", indexLetter: "A"}                    ],                    indexLetter: "A"                },                {                    brandList:[                        {brandId:2, cnName: "爱马仕B", enName: "Hermesss", indexLetter: "B"}                    ],                    indexLetter: "B"                },                {                    brandList:[                        {brandId:3, cnName: "爱马仕G", enName: "Hermes", indexLetter: "G"}                    ],                    indexLetter: "G"                },                {                    brandList:[                        {brandId:4, cnName: "爱马仕M", enName: "Hermesss", indexLetter: "M"}                    ],                    indexLetter: "M"                },                {                    brandList:[                        {brandId:5, cnName: "爱马仕P", enName: "Hermesss", indexLetter: "P"}                    ],                    indexLetter: "P"                },                {                    brandList:[                        {brandId:6, cnName: "爱马仕V", enName: "Hermesss", indexLetter: "V"}                    ],                    indexLetter: "V"                }            ],            indexLetterList: ["A", "B", "G", "M", "P", "V"]        },   letterNodes:[],//索引菜单 全部节点位置   letterIndex:0,}  onReady(){             let self = this;        let indexLetterList = self.data.brandIndexList.indexLetterList,            letterNodes = self.data.letterNodes,            nodes = '.ancehor-',            arrs = [];            // 获取所有索引锚点节点            indexLetterList.forEach((item)=>{                arrs.push(nodes+item);                if(arrs.length == indexLetterList.length){                    self.getDoms(arrs.join(','),(res)=>{                        letterNodes = res.map((item)=>{return item.top-88});                        self.setData({                            letterNodes:letterNodes                        });                    });                    wx.hideLoading();                }            });    },    // 动态获取节点     getDoms(node,success){        let self = this,            query = wx.createSelectorQuery();            setTimeout(()=>{                query.selectAll(node).boundingClientRect((res)=>{                    success && success(res);                }).exec()            },1000);    },     // 索引菜单点击滚动    letterClick(e){        let self = this,            index = e.currentTarget.dataset.index,            letterNodes = self.data.letterNodes;            wx.pageScrollTo({                scrollTop: letterNodes[index]            })    },     // 页面滚动    onPageScroll:throttle(function(e){     let self = this,         scrollTop = e[0].scrollTop,         stickyTop = self.data.stickyTop,         letterNodes = self.data.letterNodes,         showSticky = self.data.showSticky,         letterIndex = self.data.letterIndex;        // 显示右侧索引        if(scrollTop>=stickyTop){            showSticky = true;        }else{            showSticky = false;        }        //滚动定位索引        letterNodes.forEach((item,index)=>{            if(scrollTop>=item){                letterIndex = index;                // console.log(index)            }        })              // console.log(scrollTop)        self.setData({            showSticky:showSticky,            letterIndex:letterIndex        });    },10)

读到这里,这篇“小程序如何自定义索引菜单”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

小程序如何自定义索引菜单

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

小程序如何自定义索引菜单

本文小编为大家详细介绍“小程序如何自定义索引菜单”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序如何自定义索引菜单”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。2023-07-02

微信小程序如何实现字母索引菜单

本篇内容介绍了“微信小程序如何实现字母索引菜单”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!wxml文件2023-07-02

如何自定义Ubuntu系统的引导菜单

这篇文章主要为大家展示了“如何自定义Ubuntu系统的引导菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何自定义Ubuntu系统的引导菜单”这篇文章吧。Grub2是Ubuntu的默认引导工
2023-06-16

wpsvba如何自定义菜单栏

这篇文章主要介绍“wpsvba如何自定义菜单栏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wpsvba如何自定义菜单栏”文章能帮助大家解决问题。wpsvba自定义菜单栏的方法:1、vba插件中提供
2023-07-04

小程序如何自定义组件

本文小编为大家详细介绍“小程序如何自定义组件”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序如何自定义组件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一 小程序提供了很多api和基础组件,但为减少代码的复
2023-06-26

小程序自定义tabbar如何实现

小编给大家分享一下小程序自定义tabbar如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tabBar如果小程序是一个多 tab 应用(客户端窗口的底部或顶
2023-06-26

微信小程序如何自定义可搜索的picker组件

本篇内容介绍了“微信小程序如何自定义可搜索的picker组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码:myPicker.wxml<
2023-07-02

微信小程序如何修改自定义input

这篇文章主要介绍微信小程序如何修改自定义input ,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!说一下我做的input的原理 有两张图片 一张是未选中的(input.png)一张是已经选中的 (input_n.pn
2023-06-26

微信小程序如何自定义tabbar组件

这篇文章主要讲解了“微信小程序如何自定义tabbar组件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何自定义tabbar组件”吧!由于项目需求,必须自己写组件:第一步:在App
2023-06-14

微信小程序中如何自定义组件

这篇文章将为大家详细讲解有关微信小程序中如何自定义组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在微信小程序开发过程中,对于一些可能在多个页面都使用的页面模块,可以把它封装成一个组件,以提高开发效率。
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录