Vuejs在重定向后去锚

时间:2017-10-30 09:12:32

标签: laravel-5 vuejs2

在我的<div id="app">.....</div>我有类似下面的内容

        <div class="fp-row4-content">
            ... ROW 1 ...
        </div>
            <div class="partition-line"></div>
        <div class="fp-row4-content">
            ... ROW 2 ...
        </div>
            <div class="partition-line"></div>
        <div class="fp-row4-content">
            ... ROW 3...
        </div>
            <div class="partition-line"></div>
        <div class="fp-row4-content">
            ... ROW 4 ...
        </div>
            <div class="partition-line"></div>
        <div class="fp-row4-content">
            ... ROW 5 ...
        </div>

如果我点击这些行中的每一行,他们会将我带到同一页面。但是在页面加载之后,我希望它们跳转到5个不同的特定锚点。

是否可以使用Vuejs(我正在使用Laravel)? vue-router会做这个工作吗?感谢。

1 个答案:

答案 0 :(得分:0)

如果要跳转到同一页面中的特定位置,可以使用Vue Router并创建一个滚动到它的方法,如:

new VueRouter({
    mode: 'history',
    scrollBehavior: function(to, from, savedPosition) {
        if (to.hash) {
            return {selector: to.hash}
        } else {
            return { x: 0, y: 0 }
        }
    },
    routes: [
        {path: '/', component: abcView},
        // your routes
    ]
});

摘自here

或者在同一页面中创建一个方法:

//Your view:
<a class="link-button" @click="scrollMeTo('section')">Jump</a>
...
<div ref="section" class="section1">

//JS
methods: {
  scrollMeTo(refName) {
    var element = this.$refs[refName];
    var top = element.offsetTop;

    window.scrollTo(0, top);
  }
}

您可以查看Scroll Behaviour的官方文档,这里有一个示例的jsfiddle:JsFiddle

希望它有所帮助!