VUE 列表滚动

2019-11-12  本文已影响0人  Gaochengxin

方法1:

    //无缝滚动
                const boxH = this.$refs.bottombtn.offsetHeight; // 父元素的高
                      const boxulH = this.$refs.boxul.offsetHeight; // 被滚动的高
                      const cha = boxulH - boxH;
                      let num = 0;
                      clearInterval(this.timers2);
                      this.timers2 = setInterval(() => {
                        if (num <= -cha) {
                          num = 0;
                        }
                        num -= 1;
                        this.$refs.boxul.style.marginTop = num + "px";
                      }, 20);

方法2:

//列表高度滚动
  fan() {
          const boxH = this.$refs.box.offsetHeight; // 父元素的高
          const boxulH = this.$refs.boxul.offsetHeight; // 被滚动的高
          const boxliH = this.$refs.boxli.offsetHeight + 9; // 每次滚动的高度 //9是      magrin值
          const cha = boxulH - boxH - 9; // 9是magrin值
          console.log(boxH, boxulH, boxliH, cha)
          let num = 0;
          clearInterval(this.timers2);
          this.timers2 = setInterval(() => {
            if (num <= -cha) { // 判断如果滚动到顶部
              num = 0;
              this.$refs.boxul.style.transition = '0s all'; // 重置被滚动元素的高度
              this.$refs.boxul.style.marginTop = num + 'px';
              setTimeout(() => { // 重置高度后向上滚动一格否则中间间隔时间较长
                this.$refs.boxul.style.transition = '1s all';
                num -= boxliH;
                this.$refs.boxul.style.marginTop = num + 'px';
              }, 200)
            } else { // 正常滚动
              this.$refs.boxul.style.transition = '1s all';
              num -= boxliH;
              this.$refs.boxul.style.marginTop = num + 'px';
            }
          }, 2000);
        }
                //作者:gaochengxin
                //采纳请点赞谢谢
上一篇 下一篇

猜你喜欢

热点阅读