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下过滤数组重复值的代码
Sep 10 Javascript
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
浅析javascript 定时器
Dec 23 Javascript
jQuery.each使用详解
Jul 07 Javascript
使用jquery实现仿百度自动补全特效
Jul 23 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
jQuery中slidedown与slideup方法用法示例
Sep 16 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 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
php批量删除数据
2007/01/18 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
js树形控件脚本代码
2008/07/24 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
js实现简易计算器功能
2019/10/18 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
对pandas中apply函数的用法详解
2018/04/10 Python
Python中偏函数用法示例
2018/06/07 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
英国足球店:UK Soccer Shop
2017/11/19 全球购物
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
一些Solaris面试题
2013/03/22 面试题
业务主管岗位职责范本
2013/12/25 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL