发生滚动,标题发生对应的改变

contentScroll(position) {
      console.log(position);
      const positionY = -position.y;
      // 和主题中的值进行对比
      // [0, 1, 2, 3]
      // positionY 在0 和 1之间时候,index = 0
      // positionY 在1 和 2之间时候,index = 1
      // positionY 在2 和 3之间时候,index = 2
      // positionY 大于 3,index = 3
      let length = this.themeTopYs.length;
      
      for(let i = 0; i < this.themeTopYs.length; i++) {
        if( this.currentIndex !== i && ((i < length-1) && (positionY >= this.themeTopYs[i] && positionY < this.themeTopYs[i+1]) ||
          (i=== length - 1 && positionY > this.themeTopYs[i]))) {
          this.currentIndex = i;
          console.log(this.currentIndex);
          
          this.$refs.navBar.currentIndex = this.currentIndex;
        }
      }
    }
if( this.currentIndex !== i && ((i < length-1) && (positionY >= this.themeTopYs[i] && positionY < this.themeTopYs[i+1]) ||
          (i=== length - 1 && positionY > this.themeTopYs[i]))) {
          this.currentIndex = i;
          console.log(this.currentIndex);

          this.$refs.navBar.currentIndex = this.currentIndex;
        }
// 条件成立的情况下:this.currentIndex = i;
// 条件一: 防止赋值的过程过于频繁
// 条件二: ((i < length-1) && (positionY >= this.themeTopYs[i] && positionY < this.themeTopYs[i+1])
// 条件1: (i < length-1) && (positionY >= this.themeTopYs[i])
// 条件2: (i === length - 1 && positionY >= this.themeTopYs[i]);
// ** 判断大于等于: i === length - 1;

for(let i = 0; i < this.themeTopY.length-1;i ++) {
   if(this.currentIndex !== i && (positionY >= this.themeTopYs[i] && positionY < this.themeTopYs[i+1])) {
          this.currentIndex = i;
          this.$refs.nav.currentIndex = this.currentIndex;
        }
} 

空间换时间(执行性能/写代码时间)
计算机操作系统
提高运算性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值