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

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

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

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

this.$el.scrollIntoView();

2、定位到指定id的位置

第一种:

<a href="#div1"></a>

第二种:

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”

<button v-anchor="1" type = "button" @click = "goPage">
    看看
  </button>

及实现跳转到 anchor-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值