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 最简单的属性菜单
Oct 08 Javascript
jquery绑定原理 简单解析与实现代码分享
Sep 06 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
Aug 14 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
Jun 06 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
Jsonp post 跨域方案
Jul 06 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
JavaScript排序算法动画演示效果的实现方法
Oct 18 Javascript
jQuery与js实现颜色渐变的方法
Dec 30 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
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 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[02:27]刀塔重生降临
2015/10/14 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
Python生成词云的实现代码
2020/01/14 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
企业面试题试卷附带答案
2015/12/20 面试题
大学四年职业生涯规划书范文
2014/01/02 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript