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 相关文章推荐
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 Javascript
jquery.messager.js插件导致页面抖动的解决方法
Jul 14 Javascript
当json键为数字时的取值方法解析
Nov 15 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
你真的了解BOM中的history对象吗
Feb 13 Javascript
canvas实现环形进度条效果
Mar 23 Javascript
JS实现商品筛选功能
Aug 19 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
js 执行上下文和作用域的相关总结
Feb 08 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调用Oracle存储过程
2006/10/09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
Python如何输出整数
2020/06/07 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
物流专业毕业生推荐信范文
2013/11/18 职场文书
员工工作自我评价
2014/09/26 职场文书
作文评语集锦
2014/12/25 职场文书
工作失职检讨书
2015/01/26 职场文书
2015年党小组工作总结
2015/05/26 职场文书
趣味运动会简讯
2015/07/20 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery