Javascript之弹性相册

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Javascript之弹性相册</title>
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
html {
overflow: hidden;
}
body {
margin: 0px;
padding: 0px;
background: #000;
position: absolute;
width: 100%;
height: 100%;
cursor: crosshair;
}
#box {
position: absolute;
background: #000;
border: gray solid 1px;
visibility: hidden;
}
#screen {
position: absolute;
left: 0px;
width: 100%;
top: 10%;
height: 80%;
background: #000;
border: white solid 1px;
}
#box img {
position: absolute;
border: white solid 2px;
cursor: pointer;
}
#box span {
position: absolute;
color: #ccc;
font-family: verdana;
font-size: 12px;
width: 200px;
}
#box a {
text-decoration: none;
color:#ff8000;
}
#box a:hover {
text-decoration: none;
background:#ff8000;
}
#box a:visited {
text-decoration: none;
color:#ff8000;
}
#box a:visited:hover {
text-decoration: none;
background:#ff8000;
color:#ffffff;
}
#lnk {
visibility: hidden;
}
</style>
<script type="text/javascript">
//禁止鼠标选中文字
document.onselectstart = new Function("return false");
//新的数组
O = new Array();
box = 0;
img = 0;
txt = 0;
tit = 0;
W = 0;
H = 0;
nI = 0;
sel = 0;
si = 0;
ZOOM = 0;
rImg = 0;
// 动画速度
speed = .1;
// 延迟时间
delay = .1;

function dText(){
txt.style.textAlign = tit.style.textAlign = (sel<nI/2)?"left":"right";
txt.innerHTML = O[sel].tx;
tit.innerHTML = O[sel].ti;
}

function CObj(n, s, x, tx, ti){
this.n = n;
this.dim = s;
this.tx = tx;
this.ti = ti;
this.is = img[n];
this.vz = 0;
this.sx = 0;
this.x0 = x;
this.x1 = 0;
this.zo = 0;
this.over = function() {
with(this){
if(n!=sel){
O[sel].dim = 100;
O[n].dim = ZOOM * 100;
sel = n;
l = 0;
for(k=0; k<nI; k++){
O[k].x0 = l;
l += O[k].dim;
}
txt.innerHTML = tit.innerHTML = "";
setTimeout("dText()", 12);
}
}
}
this.anim = function () {
with(this){
vz = speed*(vz+(x1-sx)*delay);
x1 -= vz;
sx = (n==0)?0:O[n-1].x0+O[n-1].dim;
zo -= (zo-dim)*speed;
l = (x1*si)+6*(n+1);
w = zo*si;
is.style.left = Math.round(l)+‘px‘;
is.style.top = Math.round((H-w*rImg)*.5)+‘px‘;
is.style.width = Math.round(w)+‘px‘;
is.style.height = Math.round(w*rImg)+‘px‘;
if(sel == n){
if(sel<nI*.5) {
tit.style.left = txt.style.left = Math.round(l+w+6)+‘px‘;
} else {
tit.style.left = txt.style.left = Math.round(l-(nx*.25)-6)+‘px‘;
}
txt.style.top = Math.round(-(w*rImg)*.25)+‘px‘;
tit.style.top = Math.round((w*rImg)*.33)+‘px‘;
}
}
}
}

function run(){
for(j in O)O[j].anim();
setTimeout("run()", 16);
}

function doResize(){
tit.style.width = Math.round(nx*.25)+‘px‘;
txt.style.width = Math.round(nx*.25)+‘px‘;
tit.style.fontSize = (nx/30)+‘px‘;
txt.style.fontSize = (nx/70)+‘px‘;
with(box.style){
width = Math.round(W)+‘px‘;
height = Math.round(H)+‘px‘;
left = Math.round(nx/2-W/2)+‘px‘;
top = Math.round(ny/2-H/2)+‘px‘;
}
}

function resize(){
nx = scr.offsetWidth;
ny = scr.offsetHeight;
W = nx*90/100;
si = (W-((nI+1)*6))/((ZOOM*100)+((nI-1)*100));
H = (100*si*rImg)+14;
doResize();
}
onresize = resize;

onload = function(){
scr = document.getElementById("screen");
box = document.getElementById("box");
tit = document.getElementById("tit");
txt = document.getElementById("txt");
img = box.getElementsByTagName("img");

Lnk = document.getElementById("lnk").getElementsByTagName("a");
nI = img.length;
ZOOM = nI;
rImg = img[0].height/img[0].width;
resize();
s = ZOOM * 100;
x = 0;
tit.innerHTML = img[0].title;
txt.innerHTML = img[0].alt;
for(i=0; i<nI; i++) {
var t = img[i].alt;
if(Lnk[i].href!="") t+=‘<br><a href="‘+Lnk[i].href+‘">‘+Lnk[i].innerHTML+‘</a>‘;
O[i] = new CObj(i, s, x, t, img[i].title);
img[i].alt = "";
img[i].title = "";
img[i].onmousedown = new Function("return false;");
img[i].onmouseover = new Function(‘O[‘+i+‘].over();‘);
if(Lnk[i].href!=""){
/* ==== hyperlink ==== */
img[i].onclick = new Function(‘window.open("‘+Lnk[i].href+‘","_blank");‘);
}
x += s;
s = 100;
}
box.style.visibility = "visible";
run();
}
</script>
</head>
<body>
<div id="screen">
<div id="box"">
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_gazebo2k3.jpg" title="explain" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_majesty.jpg" title="strain" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_newborn.jpg"title="retain" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_pyre.jpg" title="mundane" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_singularity.jpg" title="inhumane" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_spellcraft.jpg" title="disdain" >
<img src="http://images.cnblogs.com/cnblogs_com/caidupingblogs/828701/o_whitemagic.jpg" title="never again" >
<span id="txt"></span>
<span id="tit"></span>
<span id="lnk">
<a href="www.baidu.com"></a>
<a></a>
<a></a>
<a></a>
<a></a>
<a></a>
<a></a>
</span>
</div>
</div>
<span id="LB0" style="position:absolute;left:100%;top:100%;">
<span style="position:absolute;left:-50px;top:-5px;font-size:1px;width:100px;height:10px;background:#333"><span id="LB1" style="position:absolute;left:0px;top:0px;font-size:1px;width:0px;height:10px;background:#FFFFFF"></span></span></span>
<script>m00=document.getElementById("box").getElementsByTagName("img");m01=m00.length;function images_loading_bar(){m02=0;for(i=0;i<m01;i++)m02+=(m00[i].complete)?1:0;document.getElementById("LB1").style.width=Math.round(m02/m01*100)+‘px‘;if(m02==m01)setTimeout("document.getElementById(‘LB0‘).style.display=‘none‘",128); else setTimeout("images_loading_bar()", 64);};images_loading_bar();</script>

</body>

时间: 2024-10-25 06:36:17

Javascript之弹性相册的相关文章

javascript中菜单栏切换案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #list li { list-style-type: none; width: 80px; height: 30px; line-height: 30px; background-color: bei

51CTO下载-JavaScript免豆

资料名称资料地址JS刷新页面[源码]http://down.51cto.com/data/45292667.成绩表排序(2)-CJ-JavaScript视频教程http://down.51cto.com/data/422466OpenLayers 英文原版本API文档http://down.51cto.com/data/443003类似谷歌图片的图片展示代码[源码]http://down.51cto.com/data/446663Ext2.2API中文版(最终完成版)http://down.51

关于javascript的运动教程

一.javascript的匀速运动 关于物体的javascript匀速运动要点分析: 1.物体关于运动的时候,我们要打开定时器 2.打开定时器的时候我们记得要在停止的时候关闭定时器,同时应该注意的是一开始加载的时候,我们也应该关闭定时器,避免多次重复的加载,导致的加速运动. 3.并且速度初始化为0 实施方法: 判断物体的偏移是否小于目标值(判断运动的速度) 小于 可以继续运动 大于向右运动 2.先判断什么地方停下来? 判断条件:物理的偏移量小于7就是不能超过速度的值时 直接让它对齐 <!doct

photoSlider-原生js移动开发轮播图、相册滑动插件

详细内容请点击 在线预览   立即下载 使用方法: 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" href="css/photoSlider.min.css" /><script src="js/photoSlider.min.js" type="text/javascript" charset="utf-8&q

photoSlider-html5原生js移动开发轮播图-相册滑动插件

简单的移动端图片滑动切换浏览插件 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" href="css/photoSlider.min.css" /> <script src="js/photoSlider.min.js" type="text/javascript" charset="utf-8">

为什么V8引擎这么快?(转载)

转自:http://www.cnblogs.com/yumianhu/p/3707427.html 转载请注明出处:http://blog.csdn.net/horkychen Google研发的V8 JavaScript引擎性能优异.我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的. 作者:Community Engine公司研发部研发工程师Hajime Morita   Google的Chrome中的V8 JavaScript引擎,由于性能良好吸引了相当的注目.它是Google特别

18款jquery抽屉式手风琴导航特效代码分享

jquery hover抽屉式导航图片展开收缩代码 jQuery仿瑞丽鼠标滑过图片手风琴展开特效 jQuery扁平风格的图标导航手风琴切换代码 jQuery左右滑动手风琴轮播切换特效 jQuery仿AnG无双科技滑动手风琴特效源码 jquery图片信息列表选项卡左右切换代码 jQuery hover水滴导航切换选项卡栏目代码 jquery手风琴菜单制作横向菜单切换手风琴效果代码 jquery水平滑动手风琴菜单鼠标点击图片展示手风琴菜单代码 jQuery仿艺龙旅行网图片手风琴特效 jQuery C

为什么V8引擎这么快?[转]

转载请注明出处:http://blog.csdn.net/horkychen Google研发的V8 JavaScript引擎性能优异.我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的. 作者:Community Engine公司研发部研发工程师Hajime Morita   Google的Chrome中的V8 JavaScript引擎,由于性能良好吸引了相当的注目.它是Google特别为了Chrome可以高速运行网页应用(WebApp)而开发的.Chrome利用Apple领导的Web

JS-DOM ~ 03. 子节点的操作、style.样式和属性、dom元素的创建方法及操作、14个例题、主要是利用js直接控制html属性

带有Element和不带的区别 a)  带Element的获取的是元素节点 b)  不带可能获取文本节点和属性节点 获取所以子节点 a)   . childNodes b)   . children c)   . parentNode . children [索引] . children:获取所有子节点 opacity:0-1:透明度 alpha(opacity:百分数):IE6/7/8透明度 先绑定事件再进行循环 previousNode()上一个兄弟节点 alert(变量名)可测试变量名是否