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中的Window窗口对象
Jan 16 Javascript
javascript常用对话框小集
Sep 13 Javascript
js获取对象为null的解决方法
Nov 21 Javascript
详解JavaScript的Polymer框架中的通知交互
Jul 29 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
Dec 12 Javascript
webuploader模态框ueditor显示问题解决方法
Dec 27 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
巧用weui.topTips验证数据的实例
Apr 17 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
vuex操作state对象的实例代码
Apr 25 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
一个odbc连mssql分页的类
2006/10/09 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
javascript 写类方式之十
2009/07/05 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
关于python写入文件自动换行的问题
2018/06/23 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python cumsum函数的具体使用
2019/07/29 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
我的五年职业生涯规划
2014/01/23 职场文书
安全生产专项整治方案
2014/05/06 职场文书
学校交通安全责任书
2014/08/25 职场文书
见义勇为事迹材料
2014/12/24 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记