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 27 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
JavaScript反弹动画效果的实现代码
Jul 13 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
vue.js实现图书管理功能
Sep 24 Javascript
JS操作字符串转数字的常见方法示例
Oct 29 Javascript
JavaScript数组排序功能简单实现
May 14 Javascript
javascript代码简写的几种常用方式汇总
Aug 23 Javascript
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获取文件大小的方法
2014/02/26 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Django中几种重定向方法
2015/04/28 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
python requests post多层字典的方法
2018/12/27 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python占位符输入方式实例
2019/05/27 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
入党申请自荐书范文
2014/02/11 职场文书
会计求职信范文
2014/05/24 职场文书
用Python实现Newton插值法
2021/04/17 Python
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技