js之任意值运动框架

<!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>
div{width:200px;height:200px;background:red;float:left;border:10px black solid;margin:50px;font-size:50px;color:yellow;}
#div4{filter:alpha(opacity:30);opacity:0.3;}
</style>
<script>
window.onload=function (){
	var oDiv1=document.getElementById(‘div1‘);
	var oDiv2=document.getElementById(‘div2‘);
	var oDiv3=document.getElementById(‘div3‘);
	var oDiv4=document.getElementById(‘div4‘);
	oDiv1.onmouseover=function (){
		StartMove(this,‘width‘,500);
	};
	oDiv1.onmouseout=function (){
		StartMove(this,‘width‘,200);
	};
	oDiv2.onmouseover=function (){
		StartMove(this,‘height‘,500);
	};
	oDiv2.onmouseout=function (){
		StartMove(this,‘height‘,100);
	};
	oDiv3.onmouseover=function (){
		StartMove(this,‘font-size‘,100);
	};
	oDiv3.onmouseout=function (){
		StartMove(this,‘font-size‘,50);
	};
	oDiv4.onmouseover=function (){
		StartMove(this,‘opacity‘,100);
	};
	oDiv4.onmouseout=function (){
		StartMove(this,‘opacity‘,30);
	};
};
function getstyle(obj,name)
{
		if(obj.currentStyle) 		//针对ie获取
		{
				return obj.currentStyle[name];
		}
		else			//针对非行间样式
		{
			return getComputedStyle(obj,null)[name];
		}
};
function StartMove(obj,ss,itarget)
{

	clearInterval(obj.timer);
	obj.timer=setInterval(function (){
		var cur=0;
		if(ss==‘opacity‘){
			cur=parseFloat(getstyle(obj,ss))*100
		}
		else
		{
			cur=parseInt(getstyle(obj,ss));
		}
		var speed=(itarget-cur)/4;
		speed=speed>0?Math.ceil(speed):Math.floor(speed);
		if(itarget-cur==0){
			clearInterval(obj.timer);
		}
		else{
			if(ss==‘opacity‘)
			{
				obj.style.filter=‘alpha(opacity=‘+(cur+speed)+‘)‘;
				//通过if-else里的取整解决ie里透明度获取值存在偏差问题
				if((cur+speed)>=30)
				{
					obj.style.opacity=Math.ceil((cur+speed))/100;
				}
				else
				{
					obj.style.opacity=Math.floor((cur+speed))/100;
				}
				document.getElementById(‘txt1‘).value=cur+speed;
			}
			else
			{
				obj.style[ss]=cur+speed+‘px‘;
			}
		}
	},30);
};
</script>
</head>

<body>
<div id="div1">
变宽</div>
<div id="div2">
变高</div>
<div id="div3">
字符变大</div>
<div id="div4">
<input id="txt1" type="text" ? />
</div>
</body>
</html>
时间: 2024-11-10 13:07:05

js之任意值运动框架的相关文章

JS 之完美运动框架

完美运动框架是对原来的任意值运动框架的改善和效率的提升,即利用了json对属性进行封装,从而提高效率: window.onload=function(){ var oDiv=document.getElementsByTagName('div')[0]; oDiv.onmouseover=function(){ move(this,{width:200,height:200}); } } function getStyle(obj,attr){ if (obj.currentStyle) { r

js实现的运动框架代码实例

js实现的运动框架代码实例:元素的运动效果在大量的场景中都有应用,最典型的一个就是网站的客服系统,一般都会随着滚动条运动,本章节就介绍一下js的一个运动框架实例,希望能够给需要的朋友带来借鉴作用.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwh

JS的完美运动框架

function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false)[name]; } } //注意:在多物体运动框架中,所有东西都不能公用 !否则出问题,BUG:将必要的变量加到物体的属性中就行.即:属性与运动对象绑定:速度.其他属性值(如透明度等等) function startMove(obj, jso

js 多物体运动框架

多物体运动框架例子:多个Div,鼠标移入biankuan 单定时器,存在问题每个Div一个定时器总结:参数问题:当运动当前的div的时候可以传参数onStart(obj,tag):obj为当前运动的div 调用时用thistag表示运动的终点距离开一个定时器(当三个div一起运动时会卡)所以利用for循环开三个定时器步骤:1.设置定时器 var timer=null:2.关闭定时器clearInterval(obj.timer);3.开启定时器:obj.timer=setInterval(fun

原生js设计的运动框架

这个运动框架适合绝大多数的动画运动,话不多说,先上代码: function move(obj,json,fn){ //关闭定时器 clearInterval(obj.timer); //开启定时器 obj.timer = setInterval(function(){ var bStop = true; for(var attr in json){ //先判断是否是透明度 var iCur; if(attr == "opacity"){ //parseInt:防止在IE出现闪烁问题 i

JS之链式运动,及任意值运动框架,包括透明度的改变

链式运动,顾名思义,一环扣一环,即执行完一个事件后,再接着执行下一个事件,在参数上面动手脚,将下一个要执行的函数名作为一个参数,即利用到回掉函数,下面代码中出现的fn,即回掉函数, 1 function move(obj,attr,target,fn){ 2 clearInterval(obj.timer); 3 obj.timer = setInterval(function(){ 4 var iCur=0; 5 if (attr == 'opacity') { 6 iCur=parseInt

JavaScript的运动框架学习总结

一.目录 1. 入门案例——实现匀速运动 2. 入门案例——实现缓冲运动 3. 实现任意值的运动框架v.1 4. 改进任意值的运动框架v.2 5. 改进任意值的运动框架v.3 6. 实现链式运动框架 7. 实现完美运动框架 二.内容 1. 入门案例——实现匀速运动 ①. 要求:只要简单的实现传入的对象和运动的最终目标,便能操作该对象的left属性的大小匀速的变化到目标大小. ②. 具体代码: 1 <!DOCTYPE html> 2 <html lang="en">

关于所有运动框架总结

下面总结一下这几天学习关于运动框架的总结: [1]匀速运动框架 startMove(itarget) [2]缓冲运动框架 startMove(obj, iTarget) [3]任意值运动框架 startMove(obj, attr, iTarget) [4]链式运动框架 startMove(obj, attr, iTarget, fn) function  getStyle(obj,attr)//用此种方法获取样式中的属性 { if(obj.currentStyle) { return obj.

JS运动学习笔记 -- 任意值的运动框架(高/宽度,背景颜色,文本内容,透明度等)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>任意值的运动框架</title> <style> div { float: left; width: 200px; height: 200px; margin: 20px; background-color: yellow; border: 1p