JavaScript初探之——图片移动

在我们打开页面的时候我们看到的大部分页面都是动态的,曾经学习VB的时候要实现一些动态的画面第一个想到的就是用Flash,如今学习了BS的东西,才算是开眼界了,刚刚学习了一个动画的效果,给大家展示一下。一个小小的函数,却实现了让页面动起来的效果。

在非常多的时候。我们为了实现一一些效果,比方渐变。移动。假设用Flash的画,无疑为浏览器加入了太大的负载,假设用多张图片一张一张显示的画。这样做又太死板了,不利于我们的变化,所以最好的方法还是封装一个方法,让我们的图片依据我们想要的效果移动。同一时候运用面向对象的方法来实现。也就是分装一个方法。我们仅仅须要设置參数就能够实现我们想要的方法的移动,是不是非常方便了,废话不多说,代码加上

//设置动画
Base.prototype.animate = function (obj) {
	for (var i = 0; i < this.elements.length; i ++) {
		var element = this.elements[i];
		//长高变换动画。仅仅要增加 width 和 height 值就可以。
		var attr = obj[‘attr‘] == ‘x‘ ?

‘left‘ : obj[‘attr‘] == ‘y‘ ? ‘top‘ :
					   obj[‘attr‘] == ‘w‘ ? ‘width‘ : obj[‘attr‘] == ‘h‘ ? ‘height‘ : ‘left‘;

		var start = obj[‘start‘] != undefined ?

obj[‘start‘] : getStyle(element, attr);	//可选,默认是CSS的起始位置
		var t = obj[‘t‘] != undefined ? obj[‘t‘] : 30;												//可选,默认30毫秒运行一次
		var step = obj[‘step‘] != undefined ? obj[‘step‘] : 10;								//可选。每次运行10像素

		//提供 alter 增量和 target 目标量两种方案
		var alter = obj[‘alter‘];
		var target = obj[‘target‘];

		//缓冲运动
		var speed = obj[‘speed‘] != undefined ?

obj[‘speed‘] : 6;							//可选,默认缓冲速度为6
		var type = obj[‘type‘] == 0 ? ‘constant‘ : obj[‘type‘] == 1 ?

‘buffer‘ : ‘buffer‘;		//可选,0表示匀速,1表示缓冲,默认缓冲

		if (alter != undefined && target == undefined) {
			target = alter + start;
		} else if (alter == undefined && target == undefined) {
			throw new Error(‘alter增量或target目标量必须传一个!‘);
		}

		if (start > target) step = -step;
		element.style[attr] = start + ‘px‘;
		clearInterval(window.timer);
		timer = setInterval(function () {
			//正值的使用 Math.ceil 取整,小数部分进一位。

负值的时候使用 Math.floor,小数部分进一位。

这样就不会导致结束运动的时候不流畅突兀的感觉。
			if (type == ‘buffer‘) {
				step = (target - getStyle(element, attr)) / speed;
				step = step > 0 ? Math.ceil(step) : Math.floor(step);
			}

			*/
			//更好的解决多出几个像素或少出几个像素的方法
			if (step == 0) {
				setTarget();
			} else if (step > 0 && Math.abs(getStyle(element, attr) - target) <= step) {
				setTarget();
			} else if (step < 0 && (getStyle(element, attr) - target) <= Math.abs(step)) {
				setTarget();
			} else {
				//放在else永远不会和停止运动通知运行,就不会出现303同一时候剪到300的问题
				//可是会出现不同一时候剪到300的问题,导致突兀
				element.style[attr] = getStyle(element, attr) + step + ‘px‘;
			}

			document.getElementById(‘aaa‘).innerHTML += getStyle(element, attr) + ‘<br />‘;
		}, t);

		function setTarget() {
			element.style[attr] = target + ‘px‘;
			clearInterval(timer);
		}
	}
	return this;
};
<span style="white-space:pre">	</span>函数调用
$(function () {
	$(‘#button‘).click(function () {
		$(‘#box‘).animate({
			‘attr‘ : ‘x‘,
			‘start‘ : 100,
			‘alter‘ : 50,
			‘target‘ : 0,
			‘step‘ : 7
		});
	});
});

HTML代码。我们仅仅须要设置一个ID就能够了,也就是在body找那个加入例如以下代码就可以

<div id="box">box</div>

<input type="button" id="button" value="按钮" />
<div id="aaa"></div>

初次学习javaScript,感觉他真非常的奇妙。曾经学习HTML的时候。静态的网页是能够的,可是小相对于JavaScript,他更像是一个面向过程,须要什么,都是一步一步的来结局,而JavaScript更像是面向对象,把一些方法非常好的进行封装,从而更好的运用。难怪会叫JavaScript。有个Java的单词还真有点面向对象的意思。

时间: 2024-10-15 06:06:57

JavaScript初探之——图片移动的相关文章

JavaScript实现判断图片是否加载完成的3种方法整理

JavaScript实现判断图片是否加载完成的3种方法整理 有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明. onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码.如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将

用javascript协助导入图片

用javascript协助导入图片 需求 先说说需求.春节回家见爸妈,老爸迷上了摄影.他把平时的照片都上传到了 成都图片网, 这个成都图片网专门有一个 “快拍成都” 的版块,用于大家将随手拍的生活中的图片分享上去.每天编辑还会选出一张最有特色的图片,刊登到<成都商报>上. 快拍成都版块的网址是:http://photo.chengdu.cn/diary.php,另外,这个成都图片网还带有一个 “ 拍客论坛 “,论坛的网址是:http://photo.chengdu.cn/bbs/. 老爸在兴奋

每天一个JavaScript实例-判断图片是否加载完成

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>每天一个JavaScript实例-判断图片是否加载完成</title> <script> window.onload= function(){ //clearTimeout(clock); alert("加载完成"); } v

JavaScript实现简单图片滚动 --9张图告诉你,C罗欲哭无泪

源码下载:http://download.csdn.net/detail/u011043843/7510425 昨晚德国和葡萄牙的焦点之战你看了吗?北京时间凌晨的比赛中,C罗领衔的葡萄牙0-4德国被完灭--他是金球奖得主.欧洲金靴.欧冠冠军核心,在葡萄牙队--9张图 C罗告诉你什么叫欲哭无泪 <span style="font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio

javascript仿新浪微博图片放大缩小及旋转效果

经常看到新浪微博里有图片放大缩小旋转效果,感觉效果还不错,所以就想试着做一个类似的demo出来,至于旋转对于IE可以用滤镜来解决,标准的浏览器可以用html5中的canvas画布来解决. 思路:1.点击小图后,小图隐藏掉,在小图父级元素后增加一张大图且显示出来. 2.点击往左转,往右转触发旋转方法. 3. 点击收起按钮,把1的步骤反过来 隐藏大图 显示小图. 4. 点击查看原图功能 目前没有做成js灯箱效果,直接打开一个新连接.但是如果想做成灯箱效果的话,可以看我这篇博客,灯箱效果演示 我们可以

【javascript/css】Javascript+Css实现图片滑动浏览效果

今天用js+css来做一个能够左右滑动的图片浏览效果. 首先写一个结构,包括需要浏览的两张图,以及能够点击来滑动图片的两个按钮. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <script type="text/javascrip

JavaScript初探四

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascrip

JavaScript初探三

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <ul id

JavaScript初探二

//----------总结 //01.查找dom元素 document.getElementById();//通过id获取一个dom元素 document.getElementsByClassName();//通过class获取dom数组 document.getElementsByTagName();//通过标签名获取dom数组 //02.修改dom元素 dom.type = "text"//type属性 dom.innerHTML//双标签的文本值 这里注意innerText d