vue中锚点的三种方法


Posted in Javascript onJuly 06, 2018

第一种:

    router.js中添加

mode: 'history',
       srcollBehavior(to,from,savedPosition){
        if(to.hash){
      return {
    selector:to.hash
     }
      }
     }

    组件:   

<template>
<div>
<ul class="list">
<li><a href="#1" rel="external nofollow" >星期1</a></li>
<li><a href="#2" rel="external nofollow" >星期2</a></li>
<li><a href="#3" rel="external nofollow" >星期3</a></li>
<li><a href="#4" rel="external nofollow" >星期4</a></li>
<li><a href="#5" rel="external nofollow" >星期5</a></li>
<li><a href="#6" rel="external nofollow" >星期6</a></li>
<li><a href="#7" rel="external nofollow" >星期7</a></li>
</ul>
<div class="main_con" id="1">11111111111111111111111111111111</div>
<div class="main_con" id="2">22222222222222222222222222222222222</div>
<div class="main_con" id="3">33333333333333333333333333333333333333</div>
<div class="main_con" id="4">444444444444444444444444444444444444444</div>
<div class="main_con" id="5">555555555555555555555555555555555555555</div>
<div class="main_con" id="6">666666666666666666666666666666666666666</div>
<div class="main_con" id="7">7777777777777777777777777777777777777777</div>
</div>
</template>
<script>
export default {
data(){
return {
}
}
}
</script>
<style>
.list{
width: 100%;
height: 50px;
}
li{
width: 11%;
height: 50px;
line-height: 50px;
text-align: center;
border: 1px solid #ccc;
color: #ff6c00;
float: left;
list-style: none!important;
}
.main_con{
width: 100%;
height: 200px;
border: 1px solid #ccc;
line-height: 200px;
text-align: center;
color: blue;
}
</style>

第二种:

    写一个方法  组件

<template>
 <div>
  <div><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" @click="goAnchor('#anchor-'+index)" v-for="index in 20"> {{index}} </a></div>
  <div :id="'anchor-'+index" class="item" v-for="index in 20">{{index}}</div>
</div>
  </template>
<script>
export default{
data(){
return {
}
},
methods: {
  goAnchor(selector) {
     var anchor = this.$el.querySelector(selector)
     document.documentElement.scrollTop = anchor.offsetTop
  }
 }
}
</script>
<style>
.item{
width: 100%;
height: 200px;
line-height: 200px;
text-align: center;
}
</style>

第三种: 自定义指令

<template>
<div>
  <div><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" v-anchor="index" v-for="index in 20"> {{index}} </a></div>
  <div :id="'anchor-'+index" class="item" v-for="index in 20" >{{index}}</div>
</div>
</template>
<script>
export default{
data(){
return {
}
}
}
</script>
<style>
.item{
width: 100%;
height: 200px;
line-height: 200px;
text-align: center;
}
</style>

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

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

总结

以上所述是小编给大家介绍的vue中锚点的三种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 对象定义方法 简单易学
Mar 22 Javascript
js几个验证函数代码
Mar 25 Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
理解javascript中DOM事件
Dec 25 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
el-select数据过多懒加载的解决(loadmore)
May 29 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
Angularjs中date过滤器失效的问题及解决方法
Jul 06 #Javascript
详解Angular如何正确的操作DOM
Jul 06 #Javascript
微信小程序WebSocket实现聊天对话功能
Jul 06 #Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 #Javascript
vue结合axios与后端进行ajax交互的方法
Jul 06 #Javascript
jQuery实现仿京东防抖动菜单效果示例
Jul 06 #jQuery
vue.js动画中的js钩子函数的实现
Jul 06 #Javascript
You might like
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Python映射拆分操作符用法实例
2015/05/19 Python
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
Shell如何接收变量输入
2016/08/06 面试题
后勤人员自我鉴定
2013/10/20 职场文书
实习求职信
2013/12/01 职场文书
减负增效提质方案
2014/05/23 职场文书
消防安全培训工作总结
2015/10/23 职场文书
志愿者工作心得体会
2016/01/15 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA