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 find和children方法使用
Jan 31 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Jan 21 Javascript
用JS实现3D球状标签云示例代码
Dec 01 Javascript
异步JavaScript编程中的Promise使用方法
Jul 28 Javascript
jQuery与getJson结合的用法实例
Aug 07 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
基于Bootstrap仿淘宝分页控件实现代码
Nov 07 Javascript
js面向对象编程总结
Feb 16 Javascript
vue 父组件中调用子组件函数的方法
Jun 06 Javascript
vue使用map代替Aarry数组循环遍历的方法
Apr 30 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
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
Laravel框架表单验证详解
2014/09/04 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
python编写Logistic逻辑回归
2020/12/30 Python
基于python中theano库的线性回归
2018/08/31 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python3 使用traceback定位异常实例
2020/03/09 Python
500行python代码实现飞机大战
2020/04/24 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python能做哪些生活有趣的事情
2020/09/09 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
汽车驾驶求职信
2013/10/25 职场文书
南极大冒险观后感
2015/06/05 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
Redis全局ID生成器的实现
2022/06/05 Redis