使用ionic在首页新闻中应用到的跑马灯效果的实现

在app中经常会有滚动的跑马灯效果的运用,如图所示为跑马灯效果:
这里写图片描述
代码如下:
html:

<div class="shouRight">
  <ul class="slideTopbox" slide-scroll style="top:0px;">
        <li><a href="#">1.我是第1行</a></li>
        <li><a href="#">2.我是第2行</a></li>
        <li><a href="#">3.我是第3行</a></li>
        <li><a href="#">4.我是第4行</a></li>
    </ul>
</div>

css:

.slideTopbox {
    width: 100%;
    z-index: 99;
    position: absolute;
    top: 0;
    color: #000;
}
.shouRight {
    width: 100%;
    z-index: 9999;
    position: absolute;
    top: 0;
    height: 30px;
    color: #000;
    overflow: hidden;
    line-height: 30px;
}

js:

angular.module('starter.services', [])
.directive('slideScroll', function($window, $timeout) {
    return {
        restrict: 'AE',
        link: function(scope, element, attr) {
            var itsWatch = scope.$watch("its", function(newvalue, oldvalue) {
                    itsWatch();
                    var i = 1;    //element是ul
                    var length = element[0].children.length;
                    var widthwindow = $window.innerWidth - 20;
                    var firstwidth = element[0].children[0].children[0].offsetWidth;
                    setInterval(function() {
                        if(i == length) {
                            i = 0;//初始位置
                            element[0].style.top  = "0px";
                        }
                        var topscorll = -(i * 30);
                        var widthself = element[0].children[i].children[0].offsetWidth;  //widthself:292

                        feeltoTop(topscorll)
                        i++;
                    }, 3000)
                    //向上滚动
                    function feeltoTop(topscorll){  //console.log(topscorll):topscorll是top值
                        var buchang = -10;
                        var feelTimer = setInterval(function(){
                            element[0].style.top = parseInt(element[0].style.top) + buchang + "px";
                            if(parseInt(element[0].style.top) <= topscorll){
                                element[0].style.top = topscorll + "px";
                                window.clearInterval(feelTimer);
                            }
                        },100);
                    }
            })
        }
    }
})

实现效果如图所示:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值