码迷,mamicode.com
首页 > 其他好文 > 详细

Vue爬坑之旅(八):vue单页面中锚点跳转

时间:2020-01-05 00:29:04      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:获取参数   tor   参数传递   scroll   col   eth   string   设置   select   

一般情况下我们在html中使用锚点时会利用链接方式请求‘#+id名称’,此时会在url后面跟一个#号。但是在单页面中会有路由误判的情况。所以在单页面中锚点可改为参数传递的方式。

一、封装一个外部js:anchor.js

//锚点跳转
function goAnchor(selector) {
    var anchor = this.$el.querySelector(selector);//获取元素
    if(anchor) {
        setTimeout(()=>{//页面没有渲染完成时是无法滚动的,因此设置延迟
            anchor.scrollIntoView(); //js的内置方法,可滚动视图位置至元素位置
        },500);
    } 
};
//获取参数
function GetQueryString(name){
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if(r!=null)return  unescape(r[2]); return null;
}
 
export {
    goAnchor,
    GetQueryString
}

二、在需要使用锚点的页面引入js

import { goAnchor, GetQueryString } from ../js/anchor;
 
methods:{
   goAnchor,
   GetQueryString,
          
},
mounted(){
   let maodian=this.GetQueryString(anchor);//进入页面,如果带有锚点参数,则跳转至锚点地方,参数值就是id名
   if(maodian){
        console.log(maodian);
        this.goAnchor(#+maodian);
   }
}

Vue爬坑之旅(八):vue单页面中锚点跳转

标签:获取参数   tor   参数传递   scroll   col   eth   string   设置   select   

原文地址:https://www.cnblogs.com/linfblog/p/12150770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!