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

mac2024-04-08  34

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

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

最新回复(0)