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选择器特辑 详细小结
May 14 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
JavaScript类继承及实例化的方法
Jul 25 Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
Vue2.5通过json文件读取数据的方法
Feb 27 Javascript
基于mpvue的小程序项目搭建的步骤
May 22 Javascript
微信小程序实现图片上传功能
May 28 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 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时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
vuejs如何配置less
2017/04/25 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
matplotlib绘图实例演示标记路径
2018/01/23 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python 实现向word(docx)中输出
2020/02/13 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
超市5.1促销活动
2014/01/15 职场文书
军训教官感言
2014/03/02 职场文书
材料会计岗位职责
2014/03/06 职场文书
新闻编辑求职信
2014/07/13 职场文书
大型公益活动策划方案
2014/08/20 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
500字作文之难忘的同学
2019/12/20 职场文书