最近在做XX项目的大屏展示页面,有一个表格需要用到这个滚动效果,于是就写了个指令,记录下,共同学习。

Html代码:

<td word-roll tword="item">
      <div class="scroll_div fl">
          <div class="scroll_begin" ng-bind="item.project"></div>
          <div class="scroll_end"></div>
      </div>
</td>

样式代码:

.analysis .scroll_div {
            height: 26px;
            overflow: hidden;
            white-space: nowrap;
            width: 105px;
            margin-left: 10px;
        }

.analysis .scroll_begin,  .analysis .scroll_end {
            display: inline;
        }

指令Js代码:

define([ 'angular'], function() {
    var commonDirectives = angular.module("commonDirectives", []);
    //文字滚动
    commonDirectives.directive('wordRoll', [function() {
            return {
                restrict: 'AE',
                scope:{
                    tword:'='
                },
                link: function(scope, ele, attr) {
                    function ScrollImgLeft() {
                        var speed = 50;
                        var MyMar = null;
                        var $begin = $(ele).find("div");
                        var scroll_begin = $begin.eq(1)[0];
                        var scroll_end = $begin.eq(2)[0];
                        var scroll_div = $begin.eq(0)[0];
                        if(scroll_begin.offsetWidth > scroll_div.offsetWidth){
                            scroll_end.innerHTML = scroll_begin.innerHTML;
                        }
                        function Marquee() {
                            if (scroll_end.offsetWidth - scroll_div.scrollLeft <= 0) {
                                scroll_div.scrollLeft -= scroll_begin.offsetWidth;
                            }else {
                                scroll_div.scrollLeft++;
                            }
                        }
                        MyMar = setInterval(Marquee, speed);
                        scroll_div.onmouseover = function () { 
                            clearInterval(MyMar);     
                        }    
                        scroll_div.onmouseout = function () {       
                            MyMar = setInterval(Marquee, speed);         
                        }
                    }
                    scope.$watch('tword',function(o,n){
                        ScrollImgLeft();
                    })

                }
            }
        }])
})

沟通请加扣扣:740482406.

结构-行为-样式-angularJs 指令实现滚动文字的更多相关文章

  1. 结构-行为-样式-angularJs 指令解决IE下无PlaceHolder的问题

    最近项目开发的时候遇到一个头疼的问题,在测试IE兼容性的时候,发现placeholder在IE下无效.查网上说也是有各种解决方案,但是都不是我想要的,于是决定自己写一个.思路:placeHolder是 ...

  2. 结构-行为-样式-angularJs笔记

    0.关于Ng-app   通过ngApp指令来引导Angularjs应用是一种简洁的方式 ,适合大多数情况.在高级开发中,例如使用脚本装载应用,您也可以使用Bootstrap手动引导AngularJs ...

  3. 结构-行为-样式 - Angularjs 环境下Ztree结合JqueryUI实现拖拽

    新的项目中有一个需求是要求客户标签可以自定义,于是就想到了客户体验,让客户自己拖拽标签进行组合查询.但是理想很丰满,现实很骨感.一开始就遇到了问题,各个插件之间的结合问题,折腾一翻之后终于实现了这个功 ...

  4. 结构-行为-样式-angularJs ngAnimate(Js实现)

    声明 页面 Js 注意事项 官方链接 一.声明 注意animate的版本要与Angular的一致. <script src="jquery.1.9.1.min.js"> ...

  5. AngularJS 指令解析(二)

    AngularJS 指令解析(二) 第一篇我们讲过了作用域(scope)这块内容,现在我们进入正题,讲AngularJS的指令. 什么是指令? 这里我们引用官方的一句话: Custom directi ...

  6. angularjs指令(二)

    最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 angula ...

  7. angularJs指令执行的机制==大概的三个阶段

    第一阶段:加载阶段 angularJs要运行的话,需要去等待angular.js加载完成,加载完之后呢,angular就会去查找到ng-app这个指令,ng-app在每个应用里面只能出现一次, 它也就 ...

  8. AngularJs指令(一)

    AngularJs应用现在越来越流行了,谷歌都与微软合作支持AngularJS2.0,这是要逆天了,说明AngularJs将来大势所趋.最近想跳槽,又重新拾起了AngluarJs(之前由于缺少项目应用 ...

  9. AngularJS指令进阶 – ngModelController详解

    AngularJS指令进阶 – ngModelController详解 在自定义Angular指令时,其中有一个叫做require的字段,这个字段的作用是用于指令之间的相互交流.举个简单的例子,假如我 ...

随机推荐

  1. dd命令简单易用,例如

    dd命令简单易用,例如 bs单位,count为写入的范围区间,例如以下举例: 例:使用dd清除vote disk和ocr(裸设备)  $dd if=/dev/zero of=/dev/rrac_ocr ...

  2. leetcode第13题--Roman to Integer

    Problem: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range ...

  3. solr的安装与配置

    solr的安装与配置 不久之前开发了一个项目,需要用到solr,因为所以在开始再网上查找资料,但是发现大部分的资料都是很片面的,要么就是只讲解solr如何安装的,要么就是只讲解solr的某一个部分的, ...

  4. 【SSRS】入门篇(七) -- 报表发布

    原文:[SSRS]入门篇(七) -- 报表发布 完成[SSRS]入门篇(六) -- 分组和总计后,第一份简单的报表就已完成了,下面把报表发布到报表服务器上. (实际情况下,报表展示给用户未必是用报表服 ...

  5. 在SQL Server中添加Linked Server 图解版

    在开发中,经常需要一个SQL Server服务器去访问另一个服务器,微软提供了一种方式Linked Server 下面是配置流程: 1).打开Server Objects下 Linked Server ...

  6. [转]【Android】9-patch图片以及例子说明

    1.何为9-patch? NinePatch图片以*.9.png结尾,和普通图片(png图片)的区别是四周多了一个边框(如下图所示): 采用NinePatch图片做背景,可使背景随着内容的拉伸(缩小) ...

  7. 网页启动Windows服务

    如何在网页启动Windows服务   由于公司有许多windows服务进行业务的处理,所谓对服务的维护也是一个比较头痛的问题,因为自己也不知道服务什么时候自动停了,而且更主要的原因是服务都是由运维部门 ...

  8. DropDownListFor的用法

    Asp.Net MVC中DropDownListFor的用法   在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. ...

  9. c++类的构造函数与析构函数

    为什么用构造函数与析构函数 构造函数: c++目标是让使用类对象就像使用标准类型一样,但是常规化的初始化句法不适用与类类型. ; //基本类型 struct thing { char *pn; int ...

  10. FineUI开源版之TreeGrid实现

    FineUI开源版是没有树表格的,但是又需要,怎么办呢?在博客园看到一位大大的文章 http://www.cnblogs.com/shiworkyue/p/4211002.html 然后参考,不知道为 ...