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 IE中的DOM ready应用技巧
Jul 23 Javascript
JavaScript入门教程(3) js面向对象
Jan 31 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
再谈Javascript中的异步以及如何异步
Aug 19 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 Javascript
vue计算属性及使用详解
Apr 02 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 Javascript
jQuery实现放大镜案例
Oct 19 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非阻塞模式
2016/03/03 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
Python随机读取文件实现实例
2017/05/25 Python
python实现装饰器、描述符
2018/02/28 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
python将图片转base64,实现前端显示
2020/01/09 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
公司离职证明范本
2014/01/13 职场文书
北体毕业生求职信
2014/02/28 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
学习方法演讲稿
2014/05/10 职场文书
自主招生学校推荐信
2014/09/26 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
内勤岗位职责范本
2015/04/13 职场文书
青年联谊会致辞
2015/07/31 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
python flask框架快速入门
2021/05/14 Python