简单的angular实现的文字上下无缝滚动

最近在学习angularJs,业余时间随便写了一个文字上下无缝滚动的例子,主要写了一个小小的指令。

css代码:主要控制样式

<style type="text/css">
        *{margin: 0px;padding: 0px;}
        .slide {width: 200px;height:200px;border:1px solid #dcdcdc;margin: 0 auto;margin-top: 50px;overflow: hidden;}
        .slide li {height: 49px;line-height: 49px;text-align: left;padding: 0 10px;font-size: 16px;list-style: none;border-bottom: 1px dashed #dcdcdc;cursor: pointer;}
        .slide li:hover{background: #ccc;}
    </style>

html代码:

<body ng-app="tip">
<div ng-controller = "TipController">
    <div class="slide">
        <ul class="slideUl">
            <!-- 指令 -->
            <slide-follow id="slide" dataset-data = "datasetData"></slide-follow>
        </ul>
    </div>
</div>
</body>

当然我们的代码都是基于页面中已经引入angular.js文件下来运行的

slide-follow是我们需要实现的指令   dataset-data = "datasetData" 是我们需要显示的文字

js代码

<script type="text/javascript">
    var app =angular.module("tip",[]);
    app.controller("TipController",function($scope){
        // 数据可以根据自己使用情况更换
        $scope.datasetData = [
            {option : "这个是第一条数据"},
            {option : "这个是第二条数据"},
            {option : "这个是第三条数据"},
            {option : "这个是第四条数据"},
            {option : "这个是第五条数据"},
            {option : "这个是第六条数据"}
        ]
    })
    .directive("slideFollow",function($timeout){
        return {
            restrict : 'E',
            replace : true,
            scope : {
                id : "@",
                datasetData : "="
            },
            template : "<li ng-repeat = 'data in datasetData'>{{data.option}}</li>",
            link : function(scope,elem,attrs) {
                $timeout(function(){
                    var className = $("." + $(elem).parent()[0].className);
                    var i = 0,sh;
                    var liLength = className.children("li").length;
                    var liHeight = className.children("li").height() + parseInt(className.children("li").css('border-bottom-width'));
                    className.html(className.html() + className.html());

                    // 开启定时器
                    sh = setInterval(slide,4000);

                    function slide(){
                        if (parseInt(className.css("margin-top")) > (-liLength * liHeight)) {
                            i++;
                            className.animate({
                                marginTop : -liHeight * i + "px"
                            },"slow");
                        } else {
                            i = 0;
                            className.css("margin-top","0px");
                        }
                    }

                    // 清除定时器
                    className.hover(function(){
                        clearInterval(sh);
                    },function(){
                        clearInterval(sh);
                        sh = setInterval(slide,4000);
                    })

                },0)

            }
        }
    })
</script>

首先我们在controller中定义了需要显示的文字,接下来我们就可以开始定义指令部分。

运行效果图:

时间: 2024-09-25 03:43:04

简单的angular实现的文字上下无缝滚动的相关文章

angularjs实现文字上下无缝滚动特效代码_AngularJS

最近没有项目做,于是闲暇之余学习了下angularjs知识,然后写了一个文字上下无缝滚动的例子,主要写的是一个小小的指令. css代码: 主要控制样式 <style type="text/css"> *{margin: 0px;padding: 0px;} .slide {width: 200px;height:200px;border:1px solid #dcdcdc;margin: 0 auto;margin-top: 50px;overflow: hidden;}

javaScript实现文字图片无缝滚动特效代码

今天做项目遇到一个滚动的效果,本来打算用marquee做的,因为它是html自带的标签,写起来简单,但是有一个问题就是marquee不能实现无缝滚动,上网找了一些方法,发现marquee可以实现无缝,但要在脑残的IE环境下. 没办法,为了达到要求,自己又从网上找了一些相关的代码加以修改,最终实现了效果,现在把代码分享给大家,有问题还请大家多指正. 代码如下:  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

jquery xMarquee实现文字水平无缝滚动效果_jquery

 css 复制代码 代码如下: <style> .xMarquee{border:1px solid #ccc;height:25px;width:500px; margin:50px auto; background:#ffffff; overflow:hidden;} .xMarquee ol{list-style-type:none; margin:0px; padding:0px; font-size:12px; width:100000%;} .xMarquee ol li{floa

js实现文字、图片向上向左无缝滚动

文字或图片实现向上无缝滚动 <div id="colee" style="overflow:hidden;height:80px;">     <div id="colee1">            <li><a href="/">文字或图片实现向上无缝滚动</a></li>            <li><a href="/

js实现图片无缝滚动特效_javascript技巧

首先,无缝滚动的第一个重点就是--动.关于怎么让页面的元素节点动起来,这就得学明白关于JavaScript中定时器的相关知识. JS中的创建定时器的方法包括两种:setTimeout和setInterval.首先它们接收的参数相同:第一个参数是一个函数,用于定时器执行,第二个参数是一个数字,代表过多少毫秒之后定时器执行函数.它们的不同在于:setTimeout 是在经过指定的时间之后,只执行一次函数,而setInterval,则是每间隔指定时间,就执行函数一次,说简单点的话,就是setInter

jQuery插件实现无缝滚动特效_jquery

首先来看下html骨架,如下: <div class="box"> <ul> <li>111</li> <li>222</li> <li>333</li> </ul> </div> 结构简单明了,没什么说的. 讲下实现原理: div box是最外层盒子,给它指定的宽高,记得给box添加一个 overflow:hidden (超出的内容隐藏)样式,因为滚动肯定是会超出b

JavaScript实现垂直向上无缝滚动特效代码_javascript技巧

一.循环向上滚动的文字,如上面的滚动效果 二.实现的思路 1.建立三个层dome.dome1.dome2 2.垂直滚动的文字在dome1上 3.通过层的滚动来实现文字滚动 三.源代码 <html> <head> <title>循环向上滚动的文字</title> <link href="css/scrollTop.css" rel="stylesheet" type="text/css" /&g

js实现无缝滚动特效_javascript技巧

本文实例为大家介绍了js实现无缝滚动特效需要做到的功能,以及关键性js代码,分享给大家供大家参考,具体内容如下 运行效果图: 结合下学了的知识,做个模拟的综合性扩展练习~~  大致功能如下: 1.点开html后,图片自动移动展示 2.点击左右方向,可以改变 图片移动的方向(改变left的值,正负) 3.鼠标移入移出图片后,图片暂停移动(setInterval,clearInterval) 4.鼠标移到图片上,高亮(a:hover) 5.点击小图, 下面的大图会改变 6.文字区域随着图片的变化而变

用Photoshop简单制作漂亮的透明文字

  网上可以看到很多有透明文字或者透明图形的图片,是如何做到的呢?其实很简单.下面笔者就教给大家用Photoshop简单制作漂亮的透明文字的方法,希望对初学者有所帮助-- 先看一下效果: 方法/步骤 1.运行Photoshop软件,双击空白区域打开文件,选择一张素材照片打开.如图1所示. 2.在工具栏中选择使用文字输入工具,选择合适的文字字体,输入文字.如图2所示. 3.双击文字图层打开图层样式面版.给文字添加"投影"样式,将距离设置为0像素,扩展10%,大小15像素,单击确定按钮应用