03.05.2008, 15:43 | #1 (ссылка) |
Гость
Сообщений: n/a
|
Обсуждение скрипта
Уважаемые участники форума! Большая просьба ко всем желающим помочь. Очень нужно, чтобы кто-то объяснил следующий скрипт, желательно каждую функчию в отдельности, а именно, что она делает, какая переменная для чего нужна. Буду Оччень благодарен. Заранее спасибо
З.Ы. Программа - прожектор, видит текст при наведении мыши на чёрный фон. <html> <head> <style type="text/css"> #divExCont {position:absolute; left:0px; top:0px; clip:rect(0px 0px 0px 0px); layer-background-color:#ffffff; background-color:#ffffff;} #divCircle {position:absolute; z-index:500; visibility:hidden; width:170px;} body {background-color:#000000; overflow:hidden;} </style> <script language="JavaScript" type="text/javascript"> /************************************************** ******************************** Spotlight * Copyright (C) 2001 Thomas Brattli * This script was released at WOscripts.com * Visit for more great scripts! * This may be used and changed freely as long as this msg is intact! * We will also appreciate any links you could give us. ************************************************** *******************************/ function lib_bwcheck(){ //Browsercheck (needed) 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 } var bw=new lib_bwcheck() /*** Variables to set ***/ sCircleWidth = 168 //The width the script will clip to sCircleHeight = 168 //The height the script will clip to sStarty = 200 //Where do you want it to initially start sStartx = 200 //Where do you want it to initially start clipSpeed = 20 //Number of pixels for each step in the animation. /************************************************** **************************** Making the clipobject part ************************************************** ****************************/ function makeObj(obj, nest, x, y){ nest = (!nest) ? "":'document.'+nest+'.'; this.css = bw.dom? document.getElementById(obj).style:bw.ie4?document .all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0; this.evnt = bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0; this.clip = b_clip; this.clipIt = b_clipIt; this.clipTo = b_clipTo; this.obj = obj + "Object"; eval(this.obj + "=this"); return this; } // A unit of measure that will be added when setting the position or size of a layer. var px = bw.ns4||window.opera?"":"px"; //clip part function b_clipTo(t,r,b,l){ if (bw.ns4){ this.css.clip.top=t;this.css.clip.right=r;this.css .clip.bottom=b;this.css.clip.left=l; } else { this.css.clip="rect("+t+"px "+r+"px "+b+"px "+l+"px)"; } } function b_clipIt(tstop,rstop,bstop,lstop,step,fn){ if (!fn) fn = null var clipval = new Array() if (bw.dom || bw.ie4) { clipval = this.css.clip clipval = clipval.slice(5,clipval.length-1); clipval = clipval.split(' ') for (var i=0; i<4; i++) clipval[i] = parseInt(clipval[i]) } else { clipval[0] = this.css.clip.top clipval[1] = this.css.clip.right clipval[2] = this.css.clip.bottom clipval[3] = this.css.clip.left } totantstep = Math.max(Math.max(Math.abs((tstop-clipval[0])/step),Math.abs((rstop-clipval[1])/step)), Math.max(Math.abs((bstop-clipval[2])/step),Math.abs((lstop-clipval[3])/step))) if (!this.clipactive) this.clip(clipval[0],clipval[1],clipval[2],clipval[3],(tstop-clipval[0])/totantstep, (rstop-clipval[1])/totantstep,(bstop-clipval[2])/totantstep, (lstop-clipval[3])/totantstep,totantstep,0, fn) } function b_clip(tcurr,rcurr,bcurr,lcurr,tperstep,rperstep,b perstep,lperstep,totantstep,antstep, fn){ tcurr=tcurr+tperstep; rcurr=rcurr+rperstep bcurr=bcurr+bperstep; lcurr=lcurr+lperstep this.clipTo(tcurr,rcurr,bcurr,lcurr) if(antstep<totantstep){ this.clipactive=true antstep++ setTimeout(this.obj+".clip("+tcurr+","+rcurr+","+b curr+","+lcurr+","+tperstep+"," +rperstep+","+bperstep+","+lperstep+","+totantstep +","+antstep+",'"+fn+"')", 40) }else{ this.clipactive = false eval(fn) } } /************************************************** **************************** Initiating the page and the clip objects. ************************************************** ****************************/ function spotInit(){ pageWidth = (bw.ns4 || bw.ns6)?innerWidth:document.body.clientWidth; pageHeight = (bw.ns4 || bw.ns6)?innerHeight:document.body.clientHeight; oExCont = new makeObj('divExCont') if (bw.dom || bw.ie4){ oExCont.css.width = pageWidth+px oExCont.css.height = pageHeight+px } oCircle = new makeObj('divCircle','divExCont') oExCont.clipTo(sStarty,sStartx+sCircleWidth,sStart y+sCircleHeight,sStartx) oCircle.css.left = sStartx+px oCircle.css.top = sStarty+px oCircle.css.visibility = "visible" if (bw.ns4)document.captureEvents(Event.MOUSEMOVE) document.onmousemove = moveCircle; } function moveCircle(e){ x = (bw.ns4 || bw.ns6)?e.pageX:event.x y = (bw.ns4 || bw.ns6)?e.pageY:event.y oExCont.clipTo(y-sCircleHeight/2, x+sCircleWidth/2, y+sCircleHeight/2, x-sCircleWidth/2) oCircle.css.left = x - sCircleWidth/2 + px oCircle.css.top = y - sCircleHeight/2 + px } //This is being called when someone clicks the circle. function showCont(){ document.onmousemove = null oCircle.css.visibility = "hidden" oCircle.css.left = 0+px oCircle.css.top = 0+px oExCont.clipIt(-clipSpeed, pageWidth+clipSpeed, pageHeight+clipSpeed, -clipSpeed, clipSpeed, 'oExCont.css.overflow="auto"') } if (bw.bw) onload = spotInit </script> </head> <body bgcolor="#000000" topmargin="0" leftmargin="0"> <div id="divExCont"> <div id="divCircle">[img]spotlight_circle.gif[/img]</div> <font face="arial,helvetica,sans-serif" size="2" color="#000000">Your regular body content goes here.</font> </div> </body> </html> |
Ads | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кому какой поисковик больше нравится (обсуждение) | big-papa | Поисковые системы | 315 | 08.05.2012 20:29 |
Ошибка скрипта | Павел111 | Windows 7 | 0 | 11.09.2010 13:36 |
Как редактировать графические файлы js-скрипта для opera? | conman | Веб-строительство | 0 | 11.07.2010 00:58 |
Как редактировать графические файлы js-скрипта для opera? | conman | Программирование | 0 | 11.07.2010 00:51 |
Обсуждение браузера Google Chrome | BIG | Интернет и сети | 28 | 05.07.2010 22:50 |
"На игре 2" обсуждение | ZigZag | Общение по интересам | 32 | 29.05.2010 15:33 |
написание скрипта | Антончик | Веб-строительство | 0 | 22.12.2009 00:06 |
Обсуждение NHL 10 | shamik15 | Игры | 2 | 19.12.2009 19:49 |
Обсуждение NIS 2010 | sergewka | Безопасность | 0 | 19.09.2009 23:12 |
VB Написание сложного скрипта | kosinenkorezo | Программирование | 3 | 30.05.2009 19:44 |
Обсудим создание подраздела "Обсуждение программ" | BIG | О форуме | 2 | 12.03.2009 23:52 |
Помогите в состовления скрипта. | Tr1p | Веб-строительство | 1 | 17.08.2008 03:13 |