html 多行文字轮番,css3 文字轮番滚动效果2——改进版

1.优化了之前的代码;

2.修正了先前按照文字的条目的数量计算速度的问题,现在改为按照字符的个数计算动画执行一次需要的时间,更为精确;

3.增添了每一行JS代码的注释。

4.这个案例的用途一般为告警信息的展示:

告警的条数是不确定的,每条告警的字数是不确定的,展示告警的区域可根据浏览器的分辨率进行放大缩小;

本案例的书写满足这几个条件。

5.本案例的实现思路:

1)设置一个展示文字的div:该div的宽度用百分比来表示;

2)设置一个能够放下所有的文字条目的div:该div的宽度通过计算得到;

3)获取每一条文字信息加载到父级div中,通过循环获取到每一条信息的宽度和字符个数,然后分别求和;

4)每一条信息宽度求和得到其父级div的宽度,并将父级div的margin-left设置为其宽度的负数;而且动画是从margin-right:100%开始的,这样就完成了从右向左的动画效果。

5)根据每条信息的字符个数求和后计算出执行一次动画所需的总时间。

无标题文档

width:50%;

height:30px;

line-height:30px;

margin-top:10px;

overflow:hidden;

background-color:#333;

}

@-webkit-keyframes scroll{

from {

margin-left:100%;

}

}

@-moz-keyframes scroll{

from {

margin-left:100%;

}

}

@-ms-keyframes scroll{

from {

margin-left:100%;

}

}

.scroll{

height:30px;

overflow:hidden;-webkit-animation: scroll 5s linear 1s infinite;-moz-animation: scroll 5s linear 1s infinite;-ms-animation-name: scroll 5s linear 1s infinite;

animation-name: scroll 5s linear 1s infinite;

}

.contentItem{

line-height:30px;float:left;

padding-right:20px;

box-sizing:border-box;

font-size:18px;

overflow:hidden;

color:#E3FF00;

text-decoration:none;

}

.scrollBox:hover{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;-ms-animation-play-state:paused;

animation-play-state:paused;

}

var len = newarry.length;//获取数据的条数

var wordLen = 0;//每条数据中的字符长度变量

var sum=0;//每条数据所占宽度变量

$("#content").empty();//清空数据的父级

for(var i=0;i";

$("#content").append(divStr);//数据的父级内部插入第i条数据

var boxWidth=$(".contentItem").eq(i).width()+22;

sum+=boxWidth;//求取所有数据的宽度的和

wordLen+=(newarry[i].length+2);//求取所有字符的个数,间距按照2个字符计算

};if(len>0){

$(".scrollBox").css({"animation-duration":0.5+0.5*wordLen+"s"},{"-moz-animation-duration":0.5+0.5*wordLen+"s"},{"-webkit-animation-duration":0.5+0.5*wordLen+"s"});

};//设置动画循环一次需要的总时间,每个字符为0.5s

$(".scrollBox").width(sum);var width = $(".scrollBox").width();

$(".scrollBox").css({"marginLeft":-width});//设置数据父级的左边界

$(".scrollBox").addClass("scroll");//添加动画

});

原文:http://www.cnblogs.com/mayaoshi/p/5648371.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值