浅谈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 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Dec 21 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
回顾Javascript React基础
Jun 15 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
vue2.0实现列表数据增加和删除
Jun 17 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
Oct 29 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
php cli配置文件问题分析
2015/10/15 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
javascript时间差插件分享
2016/07/18 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
python操作MySQL数据库的方法分享
2012/05/29 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
微电影大赛策划方案
2014/06/05 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
放假通知格式
2015/04/14 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
深入浅析Django MTV模式
2021/09/04 Python
Python创建SQL数据库流程逐步讲解
2022/09/23 Python