【问题标题】:Vue JS - How to add pixels on the left side when scrollingVue JS - 滚动时如何在左侧添加像素
【发布时间】:2021-05-24 07:19:08
【问题描述】:

我想让它在滚动时,具有block-1类的块的位置向右改变,即滚动时,它向右移动1个像素

这是给定的code in codesandbox

 <template>
      <div>
        <div class="scroll-block">
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Placeat quod at
          vitae explicabo unde expedita ullam, excepturi accusantium aut aperiam
          adipisci consectetur corrupti, perspiciatis, earum ad modi recusandae
          numquam tenetur! Lorem ipsum dolor sit amet consectetur, adipisicing elit.
          Corrupti distinctio architecto deleniti quas nihil. Illum possimus
          accusamus quibusdam quis, repudiandae labore laboriosam nihil odit, vitae
          ratione numquam quod cumque aut.
        </div>
    
        <div class="block-1"></div>
      </div>
    </template>

    <style scoped>
    .scroll-block {
      width: 200px;
      overflow: scroll;
      height: 200px;
      background: red;
    }
    .block-1 {
      width: 100px;
      height: 100px;
      background: yellow;
    }
    </style>

【问题讨论】:

    标签: javascript vue.js vuejs2 scroll


    【解决方案1】:

    只需处理滚动事件并更改框位置。

    <template>
      <div>
        <div class="scroll-block" @scroll="onScroll">
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Placeat quod at
          vitae explicabo unde expedita ullam, excepturi accusantium aut aperiam
          adipisci consectetur corrupti, perspiciatis, earum ad modi recusandae
          numquam tenetur! Lorem ipsum dolor sit amet consectetur, adipisicing elit.
          Corrupti distinctio architecto deleniti quas nihil. Illum possimus
          accusamus quibusdam quis, repudiandae labore laboriosam nihil odit, vitae
          ratione numquam quod cumque aut.
        </div>
    
        <div class="block-1" :style="block1Style"></div>
      </div>
    </template>
    
    <script>
    export default {
      name: "HelloWorld",
      props: {
        msg: String,
      },
      data() {
        return {
          block1Left: 0,
          timerId: null,
        }
      },
      computed: {
        block1Style() {
          return {
            left: `${this.block1Left}px`,
          }
        }
      },
      methods: {
        onScroll() {
          this.block1Left++;
        }
      }
    };
    </script>
    
    <style scoped>
    .scroll-block {
      width: 200px;
      overflow: scroll;
      height: 200px;
      background: red;
    }
    .block-1 {
      width: 100px;
      height: 100px;
      background: yellow;
      position: relative;
    }
    </style>
    
    

    【讨论】:

    • 从 @scroll 学到的不错的举动。 ty
    • 感谢您的回答以及如何使值在向后滚动时减一
    • 您应该为您的滚动块元素添加一个引用,保留该元素的 scrollTop 值并将其与 onScroll 处理程序中的新 scrollTop 值进行比较。然后你可以决定是向左还是向右移动第 1 块。
    猜你喜欢
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2012-06-05
    • 2011-11-12
    • 1970-01-01
    相关资源
    最近更新 更多