分享
 
 
 

图片的洋葱皮动画效果的实现代码

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

有什么问题请到<a href='/bbs/forums.php?fid=21'>论坛</a>中发表<br>

<!-- http://www.webjx.com/ -->

<!-- http://bbs.webjx.com-->

<!--完成此效果需要把下面代码放到<body>区域中-->

<div align="center">

<SCRIPT language=JavaScript>

<!--

//----------------------- Start Customizable Variables -----------------------//

//=== Positioning ===//

var left = 100;// Starting left position

var top = 20;// Starting left position

//=== Curve and Distance ===//

var topInc = 5;// Incriment of top position

var leftInc = 5;// Incriment of left position

/* Make both the horizontal curve and the vertical curve the same to..

.. get an increasing gap with no curve. */

var hor_curve = 20;// Horizontal curve - 0 for no curve

var ver_curve = -20;// Vertical curve - 0 for no curve

//=== Timing and Other ===//

var noTimes = 50;// Number of times the picture is shown

var waitTime = 1;// Time delay

var layer = 2;// Layer level

var picture = '/images/logo.gif';// Picture to display (Smaller images work better)

var start_retracted= true;// Start the image retracted (true / false)

var retract= true;// Retract from behind after expanding (true / false)

//=== Fade options (Only IEusers see fade) ===//

var fade = true;// Gradual Fade (true / false) - Only works if retract =true

var fd_destop = 0;// Destination transparency level (ie 80, for mostly solid)

var fd_rate = 10;// Time in milliseconds between trasparency changes (best under 100)

var fd_delta = 5;// Amount of change each time (ie 5, for 5% change in transparency)

var event_init = 'onClick';// Event at which the script is initiated

var left_formula = '(left + leftInc) + ((count/100) * hor_curve)';// Left position formula

var top_formula = '(top + topInc) + ((count/100) * ver_curve)';// Top position formula

//----------------------- End Customizable Variables -----------------------//

//--------------------- DO NOT EDIT BEYOND THIS POINT! ---------------------//

var count = 0;

var count2 = 0;

var timeOutVal = waitTime * 10;

var txt;

var image;

var imageName;

var lay = new Array;

function addLayer(){

left = eval(left_formula);

top = eval(top_formula);

txt = "<div id='Layer" + count + "' style='position:absolute; visibility:hidden; left:" + left + "; top:" + top + "; z-index:" + layer + "'>";

txt += "<a href='#' " + event_init + "='replay()'><img src='" + picture + "' border=0 style='filter:alpha(opacity=100)' name = 'Image" + count + "'></a>";

txt += "</div>";

document.write(txt);

lay[count]=new lib_obj("Layer"+count);

}

function logoCurveInit(){

while (count < noTimes) {

addLayer();

count++;

}

count = 0;

lay[0].showIt();

if (!start_retracted)

animate();

}

function animate(){

if (start_retracted) {

if (!retract){

if (count > 0){

setTimeout('animate()',timeOutVal);

lay[count].hideIt();

count--;

}

}

else{

if (count >= 0){

setTimeout('animate()',timeOutVal);

lay[count].showIt();

if (count != 0)

fadeImage();

count--;

}

}

if (retract){

if(count==0)

retractIt();

}

}

else{

if (count < noTimes){

setTimeout('animate()',timeOutVal);

lay[count].showIt();

if (count != noTimes-1 && retract)

fadeImage();

count++;

}

if (retract){

if (count == noTimes)

retractIt();

}

}

}

function replay(){

if ((count == noTimes || (count == 0 || count == -1)) &&(count2 == noTimes-1 || count2 == 0)){

start_retracted = !start_retracted; // Make the value opposite of what it is

make_all_visible();

if (start_retracted){

count = noTimes-1;

}

else {

count = 0;

}

animate();

}

}

function retractIt(){

if (start_retracted) { // If the logo is not retracted (showing all the layers)

if (count2 > 0){

setTimeout('retractIt()',timeOutVal);

lay[count2].hideIt();

count2--;

}

}

else{ // If the logo is retracted (Only showing the first layer)

if (count2 < noTimes-1){

setTimeout('retractIt()',timeOutVal);

lay[count2].hideIt();

count2++;

}

}

}

function fadeImage(){

if (fade){

if (count >= 0 && count <= noTimes){

image = document.images['Image' + count];

nereidFade(image,fd_destop,fd_rate,fd_delta);

}

}

}

function make_all_visible(){

for (var i = 0; i< noTimes ; i++){

if (document.images['Image' + i].style.MozOpacity){

document.images['Image' + i].style.MozOpacity=100;

}

else if (document.images['Image' + i].filters) {

document.images['Image' + i].filters.alpha.opacity = 100;

}

}

}

////***************(DHTMLCentral.com)****************////

function check_browser(){

this.ver=navigator.appVersion

this.agent=navigator.userAgent

this.dom=document.getElementById?1:0

this.opera5=this.agent.indexOf("Opera 5")>-1

this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;

this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;

this.ie4=(document.all && !this.dom && !this.opera5)?1:0;

this.ie=this.ie4||this.ie5||this.ie6

this.mac=this.agent.indexOf("Mac")>-1

this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;

this.ns4=(document.layers && !this.dom)?1:0;

this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5)

return this

}

bw=new check_browser()

function show_message(txt){alert(txt); return false}

function lib_obj(obj,nest){

if(!bw.bw) return show_message('Old browser')

nest=(!nest) ? "":'document.'+nest+'.'

this.evnt=bw.dom? document.getElementById(obj):

bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;

if(!this.evnt) return show_message('The layer does not exist ('+obj+')'

+'- If your using Netscape please check the nesting of your tags!')

this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt;

this.ref=bw.dom||bw.ie4?document:this.css.document;

this.x=parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;

this.y=parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0

this.w=this.evnt.offsetWidth||this.css.clip.width|| this.ref.width||this.css.pixelWidth||0;

this.h=this.evnt.offsetHeight||this.css.clip.height|| this.ref.height||this.css.pixelHeight||0

this.c=0

if((bw.dom || bw.ie4) && this.css.clip) {

this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1);

this.c=this.c.split(' ');

for(var i=0;i<4;i++){this.c[i]=parseInt(this.c[i])}

}

this.ct=this.css.clip.top||this.c[0]||0;

this.cr=this.css.clip.right||this.c[1]||this.w||0

this.cb=this.css.clip.bottom||this.c[2]||this.h||0;

this.cl=this.css.clip.left||this.c[3]||0

this.obj = obj + "Object"; eval(this.obj + "=this")

return this

}

lib_obj.prototype.showIt = function(){this.css.visibility="visible"}

lib_obj.prototype.hideIt = function(){this.css.visibility="hidden"}

lib_obj.prototype.writeIt = function(text,startHTML,endHTML){

if(bw.ns4){

if(!startHTML){startHTML=""; endHTML=""} this.ref.open("text/html");

this.ref.write(startHTML+text+endHTML);

this.ref.close()

}else this.evnt.innerHTML=text

}

////***************(DHTMLCentral.com)****************////

/* Code taken from DynamicDrive.com (Start)-->

Gradual-Highlight Image Script II-

By J. Mark Birenbaum (birenbau@ugrad.cs.ualberta.ca)

For full source to script, visit http://dynamicdrive.com */

nereidFadeObjects = new Object();nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta){

if (!document.all)return

if (object != "[object]"){ setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0); return;}

clearTimeout(nereidFadeTimers[object.sourceIndex]); diff = destOp-object.filters.alpha.opacity;

direction = 1; if (object.filters.alpha.opacity > destOp){direction = -1;}

delta=Math.min(direction*diff,delta); object.filters.alpha.opacity+=direction*delta;

if (object.filters.alpha.opacity != destOp){ nereidFadeObjects[object.sourceIndex]=object;

nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);

}

}

// <-- Code taken from DynamicDrive.com (End)

window.onload=new logoCurveInit();

//--> End Hide

</SCRIPT><br><br><br><br><br><br><br><br>

用鼠标单击一下图片你可以看到非常好的效果!

</div>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有