⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 10个超炫的javascript特效
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>4</title>
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
	body {
		background: #222;
		overflow: hidden;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
	}

	#screen img {
		position: absolute;
		visibility: hidden;
	}

	#screen span {
		position: absolute;
		background: #fff;
		cursor: pointer;
		visibility: hidden;
		filter: alpha(opacity=80);
		-moz-opacity: 0.8;
		opacity: 0.8;
	}
</style>

<script type="text/javascript"><!--
var Oz, Ov;
var obj = [];
var K = 0;
var img, scr, W, H;
var SP = 40; /* speed */
var dz = false;

/* html positioning */
position = function(obj, x, y, w, h)
{
	with(obj.style){
		left = Math.round(x) + "px";
		top = Math.round(y) + "px";
		width = Math.round(w) + "px";
		height = Math.round(h) + "px";
	}
}

/* create object instances */
function Cobj(parent, N, x, y, w, h)
{
	this.zoomed = (parent ? 0 : 1);
	obj[K] = this;
	this.K = K ++;
	this.parent = parent;
	this.children = [];
	this.x = x;
	this.y = y;
	this.w = w;
	this.h = h;
	this.vx = 0;
	this.vy = 0;
	this.vw = 0;
	this.vh = 0;
	this.xi = 0;
	this.yi = 0;
	this.wi = 0;
	this.hi = 0;
	this.x1 = 0;
	this.y1 = 0;
	this.w1 = 0;
	this.h1 = 0;
	this.x0 = 0;
	this.y0 = 0;
	this.w0 = 0;
	this.h0 = 0;
	this.imgsrc = img[N];

	/* create HTML elements */
	this.img = document.createElement("img");
	this.img.src = this.imgsrc.src;
	this.img.obj = this;
	scr.appendChild(this.img);
	this.spa = document.createElement("span");
	this.spa.style.cursor = "pointer";
	this.spa.obj = this;
	scr.appendChild(this.spa);
	if (parent) parent.children.push(this);

	/* Flickr */
	this.blink = function()
	{
		with(this)
		{
			position(spa, x0, y0, w0, h0);
			spa.style.visibility = "visible";
			img.style.cursor = "pointer";
			setTimeout("obj[" + K + "].spa.style.visibility='hidden'", 128);
		}
	}

	/* display image & children */
	this.display = function(zoomed)
	{
		with(this)
		{
			position(img, x0, y0, w0, h0);
			img.style.visibility = "visible";
			if (parent &&  ! zoomed)
			{
				blink();
				Ov = img;
			}
		}
	}

	/* init zoom */
	this.init_zoom = function(d)
	{
		with(this)
		{
			w1 = imgsrc.width;
			h1 = imgsrc.height;
			x1 = (W - w1) / 2;
			y1 = (H - h1) / 2;
			x0 = (parent ? x + parent.x1 : (W - w1) / 2);
			y0 = (parent ? y + parent.y1 : (H - h1) / 2);
			w0 = (parent ? w : w1);
			h0 = (parent ? h : h1);
			xi = d > 0 ? x0 : x1;
			yi = d > 0 ? y0 : y1;
			wi = d > 0 ? w0 : w1;
			hi = d > 0 ? h0 : h1;
			vx = d * (x1 - x0) / SP;
			vy = d * (y1 - y0) / SP;
			vw = d * (w1 - w0) / SP;
			vh = d * (h1 - h0) / SP;
			parent.vx = d * ((x1 - (x * w1 / w0)) - parent.x1) / SP;
			parent.vy = d * ((y1 - (y * h1 / h0)) - parent.y1) / SP;
			parent.vw = vw * (parent ? (parent.w1 / w) : 0);
			parent.vh = vh * (parent ? (parent.h1 / h) : 0);
		}
	}

	/* animate zoom in - out */
	this.zoom = function()
	{
		with(this)
		{
			xi += vx;
			yi += vy;
			wi += vw;
			hi += vh;

			parent.xi += parent.vx;
			parent.yi += parent.vy;
			parent.wi += parent.vw;
			parent.hi += parent.vh;

			position(img, xi, yi, wi, hi);
			position(parent.img, parent.xi, parent.yi, parent.wi, parent.hi);

			if ((zoomed == 0 && wi > w0 - vw) || (zoomed == 1 && wi < w1 - vw))
			{
				setTimeout("obj[" + K + "].zoom()", 16);
			}
			else
			{
				dz = false;
				for (var i in Oz.children)
				{
					Oz.children[i].init_zoom();
					Oz.children[i].display(false, false);
				}
			}
		}
	}

	/* mouse events */
	this.img.onmouseover = function()
	{
		if (this != Ov) with(this.obj) if (parent &&  ! zoomed &&  ! dz) blink();
		Ov = this;
		return false;
	}

	this.img.onclick = function()
	{
		with(this.obj)
		{
			if (parent && !dz && imgsrc.complete)
			{
				if (zoomed == 1)
				{
					/* zoom out */
					Oz = this.obj.parent;
					zoomed = 0;
					init_zoom( -1);
					for (var i in children) children[i].img.style.visibility = "hidden";
					parent.zoomed = 1;
					dz = true;
					zoom();
				}
				else if (zoomed == 0)
				{
					/* zoom in */
					Oz = this.obj;
					img.style.cursor = "crosshair";
					zoomed = 1;
					init_zoom(1);
					for (var i in parent.children)
					{
						if (this.obj != parent.children[i])
							parent.children[i].img.style.visibility = "hidden";
					}
					parent.zoomed =  -1;
					dz = true;
					zoom();
				}
			}
		}
		return false;
	}

	this.spa.onmousedown = function()
	{
		this.style.visibility="hidden";
		this.obj.img.onclick();
		return false;
	}
}

/* initialization */
/* must start after the first image is loaded */
function starter()
{
	scr = document.getElementById("screen");
	img = document.getElementById("images").getElementsByTagName("img");
	W = parseInt(scr.style.width);
	H = parseInt(scr.style.height);

	/* ==== tree-zoom ==== */
	//  new Cobj(parent, image, x, y, w, h)
	O = new Cobj(0, 0, 0, 0, 0, 0);
		O0 = new Cobj(O, 1, 127, 98, 181, 134);
			O1 = new Cobj(O0, 2, 158, 150, 85, 155);
				O11 = new Cobj(O1, 4, 136, 98, 80, 196);
					O111 = new Cobj(O11, 5, 20, 154, 70, 57);
						O1111 = new Cobj(O111, 6, 161, 137, 154, 76);
					O112 = new Cobj(O11, 11, 155, 154, 70, 57);
						O1121 = new Cobj(O112, 12, 273, 116, 49, 72);
			O2 = new Cobj(O0, 3, 281, 150, 90, 154);
				O21 = new Cobj(O2, 7, 35, 295, 133, 82);
					O211 = new Cobj(O21, 15, 316, 183, 20, 36);
				O22 = new Cobj(O2, 8, 179, 295, 127, 79);
					O221 = new Cobj(O22, 13, 132, 84, 54, 102);
						O2211 = new Cobj(O221, 14, 6, 234, 69, 50);
							O22111 = new Cobj(O2211, 14, 267, 90, 135, 98);
				O23 = new Cobj(O2, 9, 92, 148, 138, 76);
					O231 = new Cobj(O23, 10, 249, 106, 83, 65);
						O2311 = new Cobj(O231, 0, 120, 87, 57, 59);

	/* display */
	O.init_zoom(1);
	O.display(true);
	for (var i in O.children)
	{
		O.children[i].init_zoom(1);
		O.children[i].display(true);
	}
}
//-->
</script>
</head>

<body>

	<div style="position:absolute;left:50%;top:50%">
		<div style="position:absolute;left:-220px;top:-170px;width:440px;height:340px;background:#000"></div>
		<div id="screen" style="position:absolute;left:-200px;top:-150px;width:400px;height:300px;overflow:hidden">

		</div>
	</div>

	<div id="images" style="position:absolute;left:-10000px;top:-10000px;">
		<img onload="setTimeout('starter();',500)" src="wi37.jpg">
		<img src="wi2.jpg">
		<img src="wi7.jpg">
		<img src="wi20.jpg">
		<img src="wi3.jpg">
		<img src="wi10.jpg">
		<img src="wi30.jpg">
		<img src="wi11.jpg">
		<img src="wi21.jpg">
		<img src="wi29.jpg">
		<img src="wi19.jpg">
		<img src="wi27.jpg">
		<img src="wi33.jpg">
		<img src="wi35.jpg">
		<img src="wi42.jpg">
		<img src="wi15.jpg">
	</div>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -