zoukankan      html  css  js  c++  java
  • 飘动文字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{
    	 300px;
    	height: 50px;
    	position: relative;
    	border: 1px solid #000000;
    	margin: 200px auto 0;
    }
    #box{
    	 0;
    	height: 50px;
    	background: #00B7FF;
    	position: absolute;
    	left: 0;
    	top: 0;
    	opacity: 1;
    }
    ul{
    	margin: 0;
    	padding: 0;
    	 100%;
    	height: 100%;
    	position: absolute;
    	left: 0;
    	top: 0;
    	list-style: none;
    }
    li{
    	 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];
    	}
    }
    

      

  • 相关阅读:
    Toolkit-常用函数库
    webpack 4版本以上 并行编译 thread-loader
    json格式数据下载
    npm 并行执行 concurrently
    WebAssembly assemblyscript
    npm outdated npm prune
    require import 引入区别
    C#数组的微软官方文档(链接)
    在C#中,override的成员仍然是virtual的
    SQL Server的DECIMAL类型,进行算术运算后会有精度变化
  • 原文地址:https://www.cnblogs.com/yangxue72/p/7865545.html
Copyright © 2011-2022 走看看