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 相关文章推荐
js根据日期判断星座的示例代码
Jan 23 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
Jan 09 Javascript
jQuery弹出层插件popShow用法示例
Jan 23 Javascript
js封装成插件的步骤方法
Sep 11 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
微信小程序获取音频时长与实时获取播放进度问题
Aug 28 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
js设计模式之单例模式原理与用法详解
Aug 15 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 Javascript
vue浏览器返回监听的具体步骤
Feb 03 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
php 无限分类的树类代码
2009/12/03 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
Javascript学习笔记二 之 变量
2010/12/15 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
python学习教程之使用py2exe打包
2017/09/24 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python散点图实例之随机漫步
2018/08/27 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
Python 实现进度条的六种方式
2021/01/06 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
公司投资建议书
2014/05/16 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2014年团队工作总结
2014/11/24 职场文书
2016寒假假期总结
2015/10/10 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js