zoukankan      html  css  js  c++  java
  • 完美运动框架

    完美运动框架可以解决多个物体的同时运动,一个物体的多个属性的运动,包括透明度及各种存在的属性,此框架将运动的所有内容封装成函数,只要传入相应的参数,几IU可以完成相应的运动任务。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>完美运动框架</title>
    <style>
    #div1{200px; height:200px; background:#F00;}
    </style>
    <script>
    window.onload=function()
    {
    	var oDiv=document.getElementById('div1');
    	oDiv.onmouseover=function()
    	{
    		onmove(this,{500,height:500});
    	}
    	oDiv.onmouseout=function()
    	{
    		onmove(this,{200,height:200});
    	}
    }
    function getStyle(obj,name)
    {
    	if(obj.currentStyle)
    	{
    		return obj.currentStyle[name];
    	}
    	else
    	{
    		return getComputedStyle(obj,false)[name];
    	}
    }
    function onmove(obj,json,fnEnd)//第一个参数为是谁的属性,第二个参数是属性和属性值的数组,最后一个是二次执行的函数
    {
    	clearInterval(obj.timer);//关闭此对象中的定时器
    	obj.timer=setInterval(function ()
    	{
    		var stop=true;//假设所有的值都到了
    		for(var arr in json)//将参数中的属性和属性值迭代执行
    		{
    			var cur=0;
    			if(arr=='opacity')//如果参数是透明度,单一处理
    			{
    				 cur=Math.round(parseFloat(getStyle(obj,arr))*100);
    			}
    			else//不是透明度的统一处理
    			{
    				cur=parseInt(getStyle(obj,arr));
    			}
    			var speed=(json[arr]-cur)/6;
    			speed=speed>0?Math.ceil(speed):Math.floor(speed);//向上向下取整
    			
    			if(cur!=json[arr])
    			{
    				stop=false;//如果还有元素没有到达,返回false
    			}
    			
    		
    			if(arr=='opacity')//透明度的调整
    			{
    				obj.style.filter='alpha(opacity:'+cur+speed+')';
    				obj.style.opacity=(cur+speed)/100;
    				
    			}
    			else
    			{
    				obj.style[arr]=cur+speed+'px';
    			}
    			if(stop)
    			{
    				clearInterval(obj.timer);//如果一个对象上的多个属性都到达指定值时,关闭定时器
    				if(fnEnd)fnEnd();//如果fnEnd有存在则执行
    			}
    			
    		}
    	},30);
    }
    </script>
    </head>
    
    <body>
    <div id="div1"></div>
    </body>
    </html>
    
  • 相关阅读:
    Building a RESTful Web Service
    Proxy setting
    同步机制 note
    C++: Virtual Table and Shared Memory
    2018中国大学生程序设计竞赛
    2018 MUltiU 9 dp / 8 upper_bound ; 构造?/
    2018/8/10 部分枚举(类似尺取)
    2018/8/9 MultiU 6 并查集+dfs,反向建边提高查询效率 !!! / 最大字段和n维(降维)/ 状压+中途相遇法
    2018/7/29 cf 499 div 2(1011)
    2018/7/28 欧拉路径
  • 原文地址:https://www.cnblogs.com/lzzhuany/p/4542721.html
Copyright © 2011-2022 走看看