浅谈vue 锚点指令v-anchor的使用


Posted in Javascript onNovember 13, 2019

如下所示:

export default {
  inserted: function(el, binding) {
    el.onclick = function() {
      let total;
      if (binding.value == 0) {
        total = 0;
      } else {

        total = document.getElementById(`anchor-${binding.value}`).offsetTop;
      }
      let distance = document.documentElement.scrollTop || document.body.scrollTop;
      let step = total / 50;
      if (total > distance) {
        (function smoothDown() {
          if (distance < total) {
            distance += step;
            document.documentElement.scrollTop = distance;
            setTimeout(smoothDown, 5);
          } else {
            document.documentElement.scrollTop = total;
          }
        })();
      } else {
        let newTotal = distance - total;
        step = newTotal / 50;
        (function smoothUp() {
          if (distance > total) {
            distance -= step;
            document.documentElement.scrollTop = distance;
            setTimeout(smoothUp, 5);
          } else {
            document.documentElement.scrollTop = total;
          }
        })();
      }

    }
  }
}

1、封装一个anchor.js

2、在入口文件中定义

//定义锚点跳转 
Vue.directive(‘anchor', anchorFunc);

3、页面中使用方式

v-anchor = “传入的value”

使用例子:

浅谈vue 锚点指令v-anchor的使用

以上这篇浅谈vue 锚点指令v-anchor的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
tagName的使用,留一笔
Jun 26 Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
鼠标滑在标题上显示图片的JS代码
Nov 19 Javascript
js利用数组length属性清空和截短数组的小例子
Jan 15 Javascript
JS中自定义定时器让它在某一时刻执行
Sep 02 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
Feb 19 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
Apr 26 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 Javascript
Jquery异步上传文件代码实例
Nov 13 #jQuery
解决ele ui 表格表头太长问题的实现
Nov 13 #Javascript
vue 实现 rem 布局或vw 布局的方法
Nov 13 #Javascript
详解如何在Javascript和Sass之间共享变量
Nov 13 #Javascript
JavaScript数组及常见操作方法小结
Nov 13 #Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
Nov 13 #Javascript
javascript操作元素的常见方法小结
Nov 13 #Javascript
You might like
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
python分析apache访问日志脚本分享
2015/02/26 Python
Python中DJANGO简单测试实例
2015/05/11 Python
python在控制台输出进度条的方法
2015/06/20 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
学生档案自我鉴定
2013/10/07 职场文书
家长对孩子评语
2014/01/30 职场文书
销售人员自我评价
2014/02/01 职场文书
员工拓展培训方案
2014/02/15 职场文书
捐资助学倡议书
2014/04/15 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
让世界充满爱观后感
2015/06/10 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers