vue中路由跳转界面锚点定位

获取不同浏览器的滚动高度:

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

1、定位到本组件的位置`

this.$el.scrollIntoView();

2、定位到指定id的位置

第一种:


第二种:

document.getElementById("divId").scrollIntoView();

3、main.js中添加下面代码`

router.afterEach((to,from, next) => {
  window.scrollTo(0,0)
})

4、使用 jQuery 进行全局定位
首先引入jQuery

npm install jquery --save

修改配置文件 webpack.base.conf.js

添加  const webpack = require('webpack');

并在module.exports的尾部加入

plugins: [
  new webpack.optimize.CommonsChunkPlugin('common.js'),
  new webpack.ProvidePlugin({
    jQuery: "jquery",
    $: "jquery"
  })
]

main.js 定义全局指令 方便其他地方复用

Vue.directive('anchor',{
    inserted : function(el,binding){
        el.onclick = function(){
            console.log(binding.value);
            document.documentElement.scrollTop = $('#anchor-'+binding.value).offset().top
        }
    }
})

控件id设为“anchor-”+value,例如“anchor-1”,
使用按钮:通过 v-anchor 绑定指定值 “1”


及实现跳转到 anchor-1

你可能感兴趣的:(vue.js,JavaScript,vue路由跳转,锚点定位)