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.Jcrop的头像编辑器
Mar 01 Javascript
重载toString实现JS HashMap分析
Mar 13 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
Apr 26 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
JS正则表达式修饰符global(/g)用法分析
Dec 27 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
vue用addRoutes实现动态路由的示例
Sep 15 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
JavaScript实现点击图片换背景
Nov 20 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
使用Python写CUDA程序的方法
2017/03/27 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
python requests.get带header
2020/05/05 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
提高python代码运行效率的一些建议
2020/09/29 Python
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
计算机专业自我鉴定
2013/10/15 职场文书
大学生的网上创业计划书
2013/12/31 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
班主任班级寄语大全
2014/04/04 职场文书
婚前保证书
2014/04/29 职场文书
单位作风建设自查报告
2014/10/23 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书