移动端ionic App 资讯上下循环滚动的实现

在ionic App中遇到一个文字上下循环滚动的效果实现,网上查了之后才知道有个通俗的名字-跑马灯。

这里借助了jQuery库的选择器和动画函数,并且把jQuery的操作封装到指令里。先看指令代码:

angular.module('starter')
    .directive('slideScroll', function ($window, $timeout) {
        return {
            restrict: 'AE',
            link: function (scope, element, attr) {
                var _scrollHeight = 40;
                var _newsLen = 3;
                var index = 0;
                setInterval(function () {
                    index += 1;
                    if (index > _newsLen) {
                        index = 0;
                        $(".news-right ul").css({
                            top: 0
                        })
                    } else {
                        $(".news-right ul").animate({
                            top: -_scrollHeight * index - 10 * index
                        }, 500);
                    }
                }, 2000)
            }
        };
    });

滚动的高度scrollHeight设置为40px,三组文字newsLen循环,每组两行文字。每隔2000ms,ul列表向上移动固定距离,top值为(_scrollHeight + 10)* index 的长度。
Html 代码是这样的:

<div class="news-right" ui-sref="newsList">
      <ul slide-scroll>
            <li class="news-box" ng-repeat="row in dataArr">
                <p ng-repeat="item in row">{{item.title.length <= 19 ? item.title : item.title.slice(0, 19) + '...'}}</p>
            </li>
            <li>
                 <p ng-repeat="item1 in dataArr[0]">{{item1.title.length <= 19 ? item1.title : item1.title.slice(0, 19) + '...'}}</p>
            </li>
      </ul>
</div>
这里对文字做了简单的处理,字符串超过19,会以“...”的形式显示。
Css 样式表是这样的:

 .news-right {
    position: absolute;
    height: 40px;
    left: 100px;
    top: 10px;
    right: 0;
    color: rgb(65, 65, 65);
    overflow: hidden;
} 
.news-right ul{
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.news-right p {
    padding: 0;
    line-height: 15px;
    text-overflow: ellipsis;
    box-sizing: border-box;
    white-space: nowrap;
    font-size: 13px;
}
效果图就不再贴了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值