浅谈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 相关文章推荐
Iframe 自适应高度并实时监控高度变化的js代码
Oct 30 Javascript
Safari5中alert的无限循环BUG
Apr 07 Javascript
关于跨站脚本攻击问题
Dec 22 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 Javascript
JavaScript的面向对象编程基础
Aug 13 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
vue.js中ref及$refs的使用方法解析
Oct 08 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
Vue表单控件数据绑定方法详解
Feb 05 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根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
JavaScript中的其他对象
2008/01/16 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
JavaScript实现异步图像上传功能
2018/07/12 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
查看Django和flask版本的方法
2018/05/14 Python
用Django写天气预报查询网站
2018/10/21 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
如何表示python中的相对路径
2020/07/08 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
新领导上任欢迎词
2014/01/13 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
写给导师的自荐信
2015/03/06 职场文书
2015年少先队活动总结
2015/03/25 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android