飘动文字2

HTML
<div class="box"> <div id="box"></div> <ul> <li>+1</li> <li>+1</li> <li>+1</li> <li>+1</li> <li>+1</li> <li>+1</li> </ul> </div>
CSS
.box{
width: 300px;
height: 50px;
position: relative;
border: 1px solid #000000;
margin: 200px auto 0;
}
#box{
width: 0;
height: 50px;
background: #00B7FF;
position: absolute;
left: 0;
top: 0;
opacity: 1;
}
ul{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
list-style: none;
}
li{
width: 50px;
height: 50px;
position: absolute;
left: 0;
top: 0;
opacity: 1;
text-align: center;
line-height: 50px;
}
JS
var lis=document.getElementsByTagName("li");
var oBox=document.getElementById("box");
var num=0;
var timer=null;
for (var i=0;i<lis.length;i++) {
lis[i].style.left=i*50+"px";
}
document.onclick=function(){
//背景颜色变化
doMove(oBox,10,300,"width",function(){
setInterval(function(){
var op=parseFloat(getStyle(oBox,"opacity"))-0.1;
oBox.style.opacity=op;
},30)
});
clearInterval(timer);
//文字
timer=setInterval(function(){
moTo(lis[num]);
num++;
if(num===lis.length){
clearInterval(timer);
num=0;
}
},100)
}
function moTo(obj){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var le=parseInt(getStyle(obj,"left"))-10;
var tp=parseInt(getStyle(obj,"top"))-10;
var op=parseFloat(getStyle(obj,"opacity"))-0.06;
if(le<-50){
clearInterval(obj.timer);
le=-50;
op=0;
tp=-50
}
obj.style.left=le+"px";
obj.style.top=tp+"px";
obj.style.opacity=op;
},30)
}
function doMove(obj,dir,target,attr,endFn){
dir=parseInt(getStyle(obj,attr))<target?dir:-dir;
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=parseInt(getStyle(obj,attr))+dir;//步长
if(speed<target&&dir<0||speed>target&&dir>0){//往后跑
speed=target;
}
obj.style[attr]=speed+"px";
if(speed==target){
clearInterval(obj.timer);
// if(endFn){
// endFn();
// }
endFn&&endFn();
}
},30)
}
//获取元素样式函数
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr];
}
}

浙公网安备 33010602011771号