首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vuetify慢慢滚动回到顶部

使用Vuetify慢慢滚动回到顶部
EN

Stack Overflow用户
提问于 2019-04-02 04:22:35
回答 3查看 7K关注 0票数 6

我在我的页面上有一个按钮,可以滚动回到页面顶部。它的工作,但我希望滑动是平滑的,而不是立即。做这件事的好方法是什么?

请注意,在这个网站上有类似的问题,但他们都没有使用Vuetify。

这是我的按钮:

代码语言:javascript
复制
<v-btn
  class="md-5 mr-3 elevation-21"
  dark
  fab
  button
  right
  color="indigo darken-3"
  fixed
  @click="top"
>

这是我的函数:

代码语言:javascript
复制
methods:{
      top(){
             window.scrollTo(0,0);
           }
        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-02 04:27:10

使用behavior选项可在支持该选项的浏览器中触发动画滚动。

代码语言:javascript
复制
window.scrollTo({
  top: 0,
  left: 0,
  behavior: 'smooth'
});

https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo

票数 16
EN

Stack Overflow用户

发布于 2021-08-27 00:02:48

通过使用$vuetify对象上的goTo方法,programmatically triggering scrolling可以在您的应用程序中实现验证解决方案。

代码语言:javascript
复制
<v-btn
  class="md-5 mr-3 elevation-21"
  dark
  fab
  button
  right
  color="indigo darken-3"
  fixed
  @click="$vuetify.goTo('#topMostElement', goToOptions)
>

可以绑定选项来控制缓动的持续时间和风格:

代码语言:javascript
复制
data: () => {
  return {
    goToOptions: {
      duration: 10000,
      offset: 0,
      easing: 'easeInOutCubic',
    },
  };
},

此外,通过使用Vuetify的v-scroll directive在滚动窗口或目标元素时提供回调,该按钮最初可以隐藏,直到页面开始滚动。在本例中,我们检测窗口上的滚动。

代码语言:javascript
复制
<v-btn
  class="md-5 mr-3 elevation-21"
  dark
  fab
  button
  right
  color="indigo darken-3"
  fixed
  @click="$vuetify.goTo('#topMostElement', goToOptions)
  v-scroll="onScroll"
  v-show="showGoToTop"
>

然后捕获距页面顶部的偏移量,并使用滚动的任意行程来取消隐藏按钮。

代码语言:javascript
复制
data: () => {
  return {
    offsetTop:0,
    goToOptions: {
      duration: 10000,
      offset: 0,
      easing: 'easeInOutCubic',
    },
  };
},
computed:{
  showGoToTop () {
    return this.offsetTop > 200;
  },
},
methods: {
  onScroll (event) {
    this.offsetTop = event.target.scrollingElement.scrollTop;
  },
},
票数 3
EN

Stack Overflow用户

发布于 2019-04-02 04:37:58

尝试(在整页上打开代码段)

代码语言:javascript
复制
html {
  scroll-behavior: smooth;
}

代码语言:javascript
复制
function scrollme(selector) {
  console.log('xx');
  document.querySelector(selector).scrollIntoView();
  
}
代码语言:javascript
复制
html {
  scroll-behavior: smooth;
}

.d { width: 100px; height: 1000px; background: #eee; }

.d:nth-child(odd) {background: #ddd; height: 100px; }
代码语言:javascript
复制
<div class="d start"></div>
<button onclick="scrollme('.end')">scroll</button>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<button onclick="scrollme('.start')">scroll</button>
<div class="d end"></div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55463016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档