运动框架学习

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>

时间: 2024-07-31 12:43:53

运动框架学习的相关文章

JavaScript的运动框架学习总结

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

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

原生JS封装运动框架

昨天我们说了一下原生JS中常用的兼容性写法,今天我们来说一下运动框架. 正常情况下我们要写一个运动的效果会用到tween.js这么一个插件,这个东西不是一般人写出来的,因为里面涉及的运动效果都是经过一堆数学的函数运算出来的,我们平常人是写不出来的,所有我们就自己封装一个运动框架,有什么问题改起来也方便,下面我们就开始封装. 首先,我们先写一个div,设置一些简单的样式,我们就拿这个div举例子,如下代码: #div{ width: 100px; height: 100px; background

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

今天学习了一下轮播图的写作,想到前一阵学过的无缝滚动得思想,所以就把轮播与滚动结合了一下.不过我的代码的神逻辑我自己都不敢恭维,在没网没参照的情况下,只能硬着头皮往下写,希望跟大家共勉吧. js运动框架的代码如下: 1 //获取样式 2 function getStyle(obj,attr){ 3 if(obj.currentStyle){ 4 return obj.currentStyle[attr]; 5 }else{ 6 return getComputedStyle(obj,false)

完美运动框架(js)

一.前言 学习js运动时,由于在实现多种不同运动效果过程中很多代码是重复的,故将其封装达到代码重用. 二.代码封装重用 function startMove(obj, json, fnEnd){ clearInterval(obj.timer);//若物体之前开有定时器则先关闭 obj.timer = setInterval(function(){ var bStop = true; //假设所有的属性值运动到了目标值 for(var attr in json){//遍历物体传过来的json值

关于所有运动框架总结

下面总结一下这几天学习关于运动框架的总结: [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.

iOS中 HeathKit框架学习 步数统计等 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 HeathKit框架学习 本文结构 简介 用户数据安全及隐私 HeathKit框架 HeathKit使用 总结 简介 HeathKit是Apple公司在推出iOS 8 系统时一块推出的关于健康信息的框架.如果iPhone手机系统升级到iOS8之后就会发现多了一个健康-app,这就是Apple提供的一个记录用户健康信息的app,可以用它来分享健康和健身数据.还可以指定数

js--链式缓冲运动框架

这些框架都是鄙人自学的网上视频,至于是哪家,想必大家都知道的,当然不纠结这个,最主要的是学习的过程和结果,甚至于你理解,掌握了没有 网上有很多的开源框架,很佩服他们的思路和写法,或许这就是代码之美吧 我一个小小的前台,做界面的,现在也要去学习设计思路了,毕竟你拿工资的多少和你掌握技能的多少.深度是成正比的 当然更要相信 努力必有回报,坚持一定成功 以下是更新的学习运动框架的进度和代码 更新时间:2014-12-11 js框架---缓冲链式运动--已经掌握 1 //运动框架 2 //author:

使用js编写一个简单的运动框架

下班后,,没事捣鼓捣鼓个人的小爱好. 首先,说明我的这个运动框架(css所有属性)也是常见的框架一种,健壮性并不是太好,对于新手学习倒是挺好,,若是大神,老司机请拐弯. 上来,我们先定义一个区块,然后在关联一个可以实时看到属性值发生变化值的标签. html: <body> <div id = "div1"> </div> <input type = "text" id = "txt1"> </