运动框架学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运动框架学习相关的知识,希望对你有一定的参考价值。

move.js

		function getStyle(obj,attr){
			if(obj.currentStyle){
				return obj.currentStyle[attr];
			}else{
				return getComputedStyle(obj,false)[attr];
			}
		}
		//运动框架
		function startMove(obj,json,fn){
			clearInterval(obj.timer);
			obj.timer = setInterval(function(){
			var flag = true;
			for(var attr in json){
					//1.取当前的值
					var icur = 0;
					if(attr == ‘opacity‘){
						icur = Math.round(parseFloat(getStyle(obj,attr))*100);
					}else{
						icur = parseInt(getStyle(obj,attr));
					}
					//2.算速度
					var speed = (json[attr] - icur)/8;
					speed = speed>0?Math.ceil(speed):Math.floor(speed);
					//3.检测停止
					if(icur != json[attr]){
						flag = false;
					}
						if(attr == ‘opacity‘){
								obj.style.filter = ‘alpha(opacity:‘+icur+speed+‘)‘;
								obj.style.opacity = (icur+speed)/100;
						}else{
						obj.style[attr] = icur+speed+"px";
						}
			}	
					if(flag){
						clearInterval(obj.timer);
						if(fn){
							fn();
						}
					}

				},10);
		}

		

 sport.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
	<title>淘宝效果</title>
	<style type="text/css">
		div.all { padding: 10px;border: 1px solid blue; background: #ccc;width: 250px; position: relative;top:100px;left: 40%;float: left;}
		div#img { width: 40px;height: 50px; border: 1px solid #000;text-align: center; margin: 20px;float: left;position: relative;overflow: hidden;}
		img { width: 25px;height: 25px;margin: 2px auto;display: block;position: absolute;top: 5px;
			left: 7px;}
			span{ position: absolute;bottom: 0px;left: 3px; }
	</style>
	<script type="text/javascript" src="move.js"></script>
	<script type="text/javascript">
		window.onload = function(){
			var imgs = document.getElementsByTagName(‘img‘);
			var divs = document.getElementsByTagName(‘div‘);
			
			for( var i = 0; i<imgs.length; i++){
				(function(i){
					//效果onmouseenter只触发一次,onmouseover可以同时触发多次
					divs[i+1].onmouseenter = function(){
						startMove(imgs[i],{top:-25},function(){
						imgs[i].style.top = "20px";
						startMove(imgs[i],{top:0});	
						});
					}
				})(i);
			}
			
		}
	</script>
</head>
<body>
<div class="all">
	<div id="img"><img src="1.jpg" id="img1"><span>大毛</span></div>
	<div id="img"><img src="2.jpg" id="img2"><span>二毛</span></div>
	<div id="img"><img src="3.jpg" id="img3"><span>三毛</span></div>
	<div id="img"><img src="4.jpg" id="img4"><span>四毛</span></div>
	<div id="img"><img src="5.jpg" id="img5"><span>五毛</span></div>
	<div id="img"><img src="1.jpg" id="img6"><span>六毛</span></div>

</div>
</body>
</html>

 技术分享

以上是关于运动框架学习的主要内容,如果未能解决你的问题,请参考以下文章

带无缝滚动的轮播图(含JS运动框架)

day38—JavaScript的运动基础-匀速运动

HTML+JavaScript实现链式运动特效

视觉slam学习:初识slam,三维空间刚体运动代码实战,Eigen库的使用

视觉slam学习:初识slam,三维空间刚体运动代码实战,Eigen库的使用

视觉slam学习:初识slam,三维空间刚体运动代码实战,Eigen库的使用