浅谈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 相关文章推荐
关于this和self的使用说明
Aug 01 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
Mar 14 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
vue移动端使用canvas签名的实现
Jan 15 Javascript
vue keep-alive的简单总结
Jan 25 Vue.js
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
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
js获取内联样式的方法
2015/01/27 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
简单了解django缓存方式及配置
2019/07/19 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
七一讲话心得体会
2014/09/05 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
旅游安全责任协议书
2016/03/22 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript