?? fader.js
字號:
/*fader.js * by www.1studio.net * Copyright (c) 2001. All Rights Reserved. * License to use is granted if and only if this entire copyright notice * is included. * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version.*///3.0 added more browser checks:NS4 = (document.layers);IE4 = (document.all);appVer = navigator.appVersion;IEmac = (IE4 && appVer.indexOf("Mac") != -1);IE4mac = (IEmac && appVer.indexOf("MSIE 4") != -1);IE40mac = (IE4mac && appVer.indexOf("4.0;") != -1);IE45mac = (IE4mac && appVer.indexOf("4.5;") != -1);NSpre401 = (NS4 && (parseFloat(appVer) <= 4.01));NSpre403 = (NS4 && (parseFloat(appVer) <= 4.03));//3.0 added next 2 line for backward compatibilityFDRjustFlip = (window.FDRjustFlip) ? FDRjustFlip : false;FDRhdlineCount = (window.FDRhdlineCount) ? FDRhdlineCount : 1;FDRfinite = (FDRmaxLoops > 0);FDRisOver = false;FDRloadCount = 0;//3.0 set blendTimer to null for IE40macblendTimer = null;if (!window.prefix) prefix = "";window.onload = FDRcountLoads;//3.0 modified NS-only code to account for flipper and lack of NS onload/onerror handlersif (NS4) { if(FDRjustFlip || NSpre403) { totalLoads = 1; FDRfadeImg = new Object(); FDRfadeImg.width = FDRboxWid - (FDRborWid*2);; } else { totalLoads = 2; FDRfadeImg = new Image(); FDRfadeImg.onload = FDRcountLoads; FDRfadeImg.onerror = FDRcountLoads; FDRfadeImg.src = FDRgifSrc; }}//3.0 added event argument for NSfunction FDRcountLoads(e) { if (IE4) { setTimeout("FDRinit()",1); } else {//3.0 check for event type if(e.type == "error") FDRjustFlip = true; FDRloadCount++; if (FDRloadCount==totalLoads) { origWidth = innerWidth; origHeight = innerHeight; window.onresize = function(){ if (innerWidth==origWidth && innerHeight==origHeight) return; location.reload(); } FDRinit(); } }}function FDRinit(){ if(!window.arNews) { if(!window.arTXT || !window.arURL) return; if(arTXT.length != arURL.length) return; arNews = []; for (i=0;i<arTXT.length;i++){ arNews[arNews.length] = arTXT[i]; arNews[arNews.length] = arURL[i]; } } if (NS4) { if (!document.elFader) return; with(document.classes.newslink.A) { textDecoration = FDRlnkDec; color = FDRlnkCol; fontWeight = FDRfntWgh; fontSize = FDRfntSiz; fontStyle = FDRfntSty; fontFamily = FDRfntFam; lineHeight = FDRlinHgt; textAlign = FDRtxtAln; } with(document.classes.nolink.P) { color = FDRfntCol; fontWeight = FDRfntWgh; fontSize = FDRfntSiz; fontStyle = FDRfntSty; fontFamily = FDRfntFam; lineHeight = FDRlinHgt; textAlign = FDRtxtAln; } elFader = document.elFader; with (elFader) { document.write(" "); document.close(); bgColor = FDRborCol; clip.width = FDRboxWid; clip.height = FDRboxHgt; } contWidth = FDRboxWid - (FDRborWid*2); contHeight = FDRboxHgt - (FDRborWid*2); elCont = new Layer(contWidth,elFader); with (elCont) { top = FDRborWid; left = FDRborWid; clip.width = contWidth; clip.height = contHeight; bgColor = FDRbackCol; visibility = "inherit"; } newsWidth = contWidth - (FDRboxPad*2); newsHeight = contHeight - (FDRboxPad*2); elNews = new Layer(newsWidth,elCont); with (elNews) { top = FDRboxPad; left = FDRboxPad; clip.width = newsWidth ; clip.height = newsHeight; }//3.0 made NS GIF use conditional on flipper choice if (!FDRjustFlip) { elGif = new Layer(contWidth,elCont); imStr = "<IMG SRC='" + FDRgifSrc +"' WIDTH="+ Math.max(FDRfadeImg.width,(FDRboxWid - (FDRborWid*2)));//3.0 onError handler added to in-line GIF code for NS 4.03- imStr += (NSpre403) ? " onError='window.FDRjustFlip = true'>" : ">"; with (elGif) { document.write(imStr); document.close(); moveAbove(elNews); } imgHeight = elGif.document.height; slideInc = (imgHeight/(FDRblendDur*1000/FDRgifInt)); startTop = -(imgHeight - FDRboxHgt); } elFader.visibility = "show"; } else { if (!window.elFader) return; elFader.innerHTML =""; if(IE4mac) { document.body.insertAdjacentHTML("BeforeBegin",">STYLE></STYLE>"); } else { if (!document.styleSheets.length) document.createStyleSheet(); } with (document.styleSheets(document.styleSheets.length-1)) { addRule("A.newslink","text-decoration:"+FDRlnkDec+";color:"+ FDRlnkCol); addRule("A.newslink:hover","color:"+ FDRhovCol); } with (elFader.style) {//3.0 added box width/height adjustments for IEmac errorOffset = (IE4mac) ? (FDRboxPad + FDRborWid) : 0; width = FDRboxWid - (errorOffset * 2); height = FDRboxHgt - (errorOffset * 2); if(IE4mac && !IE45mac){ pixelLeft = elFader.offsetLeft + errorOffset; pixelTop = elFader.offsetTop + errorOffset; } backgroundColor = FDRbackCol; overflow = "hidden"; color = FDRfntCol; fontWeight = FDRfntWgh; fontSize = FDRfntSiz; fontStyle = FDRfntSty; fontFamily = FDRfntFam; lineHeight = FDRlinHgt; textAlign = FDRtxtAln; cursor = "default"; visibility = "visible"; borderWidth = FDRborWid; borderStyle = FDRborSty; borderColor = FDRborCol; padding = FDRboxPad;//3.0 filter application conditional on fader use if(!FDRjustFlip) filter = "blendTrans(duration=" + FDRblendDur + ")"; } elFader.onselectstart = function(){return false}; IEhasFilters = (elFader.filters.blendTrans) ? true : false; }//3.0 NS mouseover/out handlers applied only in 4.02+ if (!NSpre401) { elFader.onmouseover = function (){ FDRisOver = true; } elFader.onmouseout = function(){ FDRisOver = false; status = ""; } } FDRstart(0);}function FDRstart(ind){ newsCount = ind; if (FDRfinite) loopCount = 0; FDRdo(); blendTimer = setInterval("FDRdo()",FDRblendInt*1000)}function FDRdo() {//3.0 check for blendTimer value for IE40mac: if(!blendTimer && loopCount>0) return; if (FDRfinite && loopCount==FDRmaxLoops) { FDRend(); return; } FDRfade();//3.0 omitted next line; newsCount incremented elsewhere// newsCount += 2; if (newsCount == arNews.length) { newsCount = 0; if (FDRfinite) loopCount++; }}//3.0 added function for display string creationfunction FDRmakeStr(){ tempStr = ""; for (i=0;i<FDRhdlineCount;i++){ if(newsCount>=arNews.length)break; dispStr = arNews[newsCount]; linkStr = arNews[newsCount+1]; isLink = linkStr.length; if (isLink) { tempStr += "<table cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#4F4F4F' width='100%'><tr><td width='100%' align='right'><A " + "HREF='" + prefix + linkStr + "' target='news'>" + dispStr + "</A></td></tr></table>" } else { tempStr += ((NS4) ? "<table cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#4F4F4F' width='100%' valign='bottom'><tr><td width='100%' align='right'>" : "<table cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#4F4F4F' width='100%'><tr><td width='100%' align='right'>") +dispStr+"</td></tr></table>"; } if(IE40mac) tempStr +="<BR>"; newsCount += 2; } return tempStr;}function FDRfade(){//3.0 newsStr now created in other function and returned here newsStr = FDRmakeStr(); if (NS4) {//3.0 made GIF manipulation conditional on fader use if (!FDRjustFlip) { elGif.top = startTop; elGif.visibility = "inherit"; } elNews.visibility = "hide"; with (elNews.document) { write(newsStr); close(); } elNews.visibility = "inherit"; } else { if(IEhasFilters)elFader.filters.blendTrans.Apply(); elFader.innerHTML = newsStr; if(IEhasFilters)elFader.filters.blendTrans.Play(); }//3.0 status bar display now only when single headline displayed if(FDRhdlineCount==1) window.status = (FDRisOver && isLink) ? (prefix + linkStr) : "";//3.0 NS GIF sliding condiional on fader use if (NS4 && !FDRjustFlip) FDRslide();}function FDRslide(){ elGif.top += slideInc; if (elGif.top >= 0) {elGif.visibility = "hide";return} setTimeout("FDRslide()",FDRgifInt);}//3.0 new function for NS to avoid literal function declaration// and allow double-click for 4.01a- versionsfunction FDRdblClickNS(){ elFader.releaseEvents(Event.DBLCLICK); FDRstart(startIndex); return false;}function FDRend(){ clearInterval(blendTimer);//3.0 set blendTimer to null for IE40mac blendTimer = null; if (FDRendWithFirst) { newsCount = 0; FDRfade(); } if (FDRreplayOnClick) {//3.0 startIndex dependent on headline count startIndex = FDRendWithFirst ? (FDRhdlineCount * 2) : 0; if (IE4) { elFader.title = "Double click to replay"; elFader.ondblclick = function(){ this.ondblclick = null; this.title = ""; FDRstart(startIndex); } } else { elFader.captureEvents(Event.DBLCLICK);//3.0 moved handler to new function elFader.ondblclick = FDRdblClickNS; } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -