📄 fader.js
字号:
NS4 = (document.layers);
IE4 = (document.all);
FDRboxWid = 500;
FDRboxHgt = 18;
FDRborWid = 2;
FDRborCol = "#FFFFFF";
FDRborSty = "solid";
FDRbackCol = "#FFFFFF";
FDRboxPad = 2;
FDRtxtAln = "center";
FDRlinHgt = "9pt";
FDRfntFam = "宋体";
FDRfntCol = "#4F4F4F";
FDRfntSiz = "9pt";
FDRfntWgh = "";
FDRfntSty = "normal";
FDRlnkCol = "#4F4F4F";
FDRlnkDec = "none";
FDRhovCol = "#000000";
FDRgifSrc = "";
FDRgifInt = 60;
FDRblendInt = 5;
FDRblendDur = 1;
FDRmaxLoops = 100;
FDRendWithFirst = true;
FDRreplayOnClick = true;
FDRjustFlip = false;
FDRhdlineCount = 0;
/////
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 compatibility
FDRjustFlip = (window.FDRjustFlip) ? FDRjustFlip : false;
FDRhdlineCount = (window.FDRhdlineCount) ? FDRhdlineCount : 1;
FDRfinite = (FDRmaxLoops > 0);
FDRisOver = false;
FDRloadCount = 0;
//3.0 set blendTimer to null for IE40mac
blendTimer = null;
if (!window.prefix) prefix = "";
window.onload = FDRcountLoads;
//3.0 modified NS-only code to account for flipper and lack of NS onload/onerror handlers
if (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 NS
function 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 creation
function 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='#FFFFFF' width='100%'><tr><td width='100%' align='center' class='shadow'><A "
+ "HREF='" + prefix + linkStr + "'>"
+ dispStr + "</A></td></tr></table>"
}
else {
tempStr += ((NS4) ? "<table cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#FFFFFF' width='100%'><tr><td width='100%' align='center' class='shadow'>" : "<table cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#FFFFFF' width='100%'><tr><td width='100%' align='center' class='shadow'>") +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- versions
function 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;
}
}
}
/////////////// 双击左键滚屏
var currentpos,timer;
function initialize()
{
timer=setInterval("scrollwindow()",20);
}
function sca(){
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos != document.body.scrollTop)
sca();
}
document.onmousedown=sca
document.ondblclick=initialize
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -