浅谈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 相关文章推荐
使用prototype.js进行异步操作
Feb 07 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
javascript回车完美实现tab切换功能
Mar 13 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
jquery与ajax获取特殊字符实例详解
Jan 08 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
vue+Element实现搜索关键字高亮功能
May 28 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
php 不同编码下的字符串长度区分
2009/09/26 PHP
php 各种应用乱码问题的解决方法
2010/05/09 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
使javascript也能包含文件
2006/10/26 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
详解Python多线程
2016/11/14 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
法学专业应届生求职信
2013/10/16 职场文书
校园广播稿500字
2014/02/04 职场文书
中学教师教育感言
2014/02/21 职场文书
高中生家长寄语大全
2014/04/03 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
python缺失值填充方法示例代码
2022/12/24 Python