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 相关文章推荐
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 Javascript
JavaScript对象、属性、事件手册集合方便查询
Jul 04 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
跨域资源共享 CORS 详解
Apr 26 Javascript
Angularjs 自定义服务的三种方式(推荐)
Aug 02 Javascript
ES6概念 ymbol.for()方法
Dec 25 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
react高阶组件添加和删除props
Apr 26 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 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实现用于验证所有类型的信用卡类
2015/03/24 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
javascript事件模型代码
2007/07/01 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
PHP两种查询函数array/row的区别
2013/06/03 面试题
一份全面的PHP面试问题考卷
2012/07/15 面试题
高中生毕业自我鉴定范文
2013/12/22 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
大学生工作求职信
2014/06/23 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
2014个人年度工作总结
2014/12/15 职场文书
同学毕业留言寄语
2015/02/27 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
高中数学教学反思范文
2016/02/18 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
PHP设计模式(观察者模式)
2021/07/07 PHP