angularJS 指令封装回到顶部示例详解


Posted in Javascript onJanuary 22, 2017

关于angularJS如何回到顶部,还是直接code吧!

1.构建指令,使用registerDirective构建指令添加到内部的hasDirectives对象内,以方便后面在全局查找指令的时候进行匹配。

/** 
**回到顶部 
**/ 
 
define(["app"], function (app) { 
   
  app().registerDirective("backToTop", function () { 
    return { 
      restrict: "E", 
      link: function (scope, element, attr) { 
        var e = $(element); 
        $(window).scroll(function () {         //滚动时触发 
          if ($(document).scrollTop() > 300)     //获取滚动条到顶部的垂直高度,到相对顶部300px高度显示 
            e.fadeIn(300) 
          else 
            e.fadeOut(200); 
        }); 
        /*点击回到顶部*/ 
        e.click(function () { 
          $('html, body').animate({         //添加animate动画效果 
            scrollTop: 0 
          }, 500); 
        }); 
      } 
    }; 
  }); 
});

注:

registerDirective 是$CompileProvider的方法,主要就是把内建指令添加到内部的hasDirectives对象内,以方便后面在全局查找指令的时候进行匹配。

指令从html的角度,可以认为指令名字是一个标识符,可以作为元素名(E),元素属性(A),注释(M),类名(C)出现在html中;而从JavaScript的角度,则可以认为是返回的一个规范化的有特殊意义的指令对象。

link函数创建可以操作dom的指令,签名如下:

link:function(scope,element,attrs){};

scope在其内部作用域注册监听器的作用域。

element代表实例元素,指使用此指令的元素。在postLink函数中我们应该只操作此 元素的子元素,因为子元素已经被链接过了。

attrs 代表实例属性,是一个由定义在元素上的属性组成的标准化列表,可以在所有指 令的链接函数间共享。会以JavaScript对象的形式进行传递。 2. 将定义的 backToTop 指令对象在页面调用。

2.在页面调用backToTop指令

<back-to-top class="back_top" title="返回顶部">
<i class="fa fa-angle-up"></i>
</back-to-top>

注:

restrict - EACM的子集的字符串,它限制directive为指定的声明方式。如果省略的话,directive将仅仅允许通过属性声明:

E - 元素名称: <back-to-top></back-to-top>

A - 属性名: <div back-to-top</div>

C - class名: <div class=”back-to-top”></div>

M - 注释 : <!-- back-to-top -->

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery操作select大全
Apr 25 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
Angular的MVC和作用域
Dec 26 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
解决vue props 拿不到值的问题
Sep 11 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 Javascript
js实现省级联动(数据结构优化)
Jul 17 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
微信小程序实现点击页面出现文字
Sep 21 Javascript
jQuery实现的分页功能示例
Jan 22 #Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 #Javascript
原生js实现类似fullpage的单页/全屏滚动
Jan 22 #Javascript
前端开发必知的15个jQuery小技巧
Jan 22 #Javascript
Vue.js学习之过滤器详解
Jan 22 #Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
Jan 22 #Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 #Javascript
You might like
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
js中日期的加减法
2015/05/06 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
详细分析Node.js 模块系统
2020/06/28 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
Python实现的HTTP并发测试完整示例
2020/04/23 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
python 发送get请求接口详解
2020/11/17 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
大学迎新标语
2014/06/26 职场文书
2014年招商工作总结
2014/11/22 职场文书
2014年教务工作总结
2014/12/03 职场文书
期中考试后的感想
2015/08/07 职场文书
Python基础之pandas数据合并
2021/04/27 Python
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技