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 相关文章推荐
Javascript调用C#代码
Jan 17 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
通过$(this)使用jQuery包装后的方法或属性
May 18 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
学习JavaScript设计模式(接口)
Nov 26 Javascript
vue axios 表单提交上传图片的实例
Mar 16 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
vue+Element-ui前端实现分页效果
Nov 15 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 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/10/16 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Python Cookie 读取和保存方法
2018/12/28 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
python入门之基础语法学习笔记
2020/02/08 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
《曹刿论战》教学反思
2014/03/02 职场文书
党员承诺践诺书
2014/05/20 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
党章培训心得体会
2014/09/04 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
会计主管岗位职责
2015/04/02 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python