fader.js
上传用户:scene123
上传日期:2010-02-19
资源大小:3311k
文件大小:8k
源码类别:

.net编程

开发平台:

C#

  1.    FDRboxWid = 700;
  2.    FDRboxHgt = 16;
  3.    FDRborWid = 0;
  4.    FDRborCol = "#070707";
  5.    FDRborSty = "solid";
  6.    FDRbackCol = "";
  7.    FDRboxPad = 4;
  8.    FDRtxtAln = "center";
  9.    FDRlinHgt = "6pt";
  10.    FDRfntFam = "Verdana,Arial,Helvetica,sans-serif,宋体";
  11.    FDRfntCol = "";
  12.    FDRfntSiz = "9pt";
  13.    FDRfntWgh = "";
  14.    FDRfntSty = "normal";
  15.    FDRlnkCol = "#000080";
  16.    FDRlnkDec = "underline";
  17.    FDRhovCol = "#2f2f4f";
  18.    FDRgifSrc = "images/fade.gif";
  19.    FDRgifInt = 60;
  20.    FDRblendInt = 6;
  21.    FDRblendDur = 1;
  22.    FDRmaxLoops = 100;
  23.    FDRendWithFirst = true;
  24.    FDRreplayOnClick = true;
  25.    
  26.    FDRjustFlip = false;
  27.    FDRhdlineCount = 0;
  28. NS4 = (document.layers);
  29. IE4 = (document.all);
  30. appVer = navigator.appVersion;
  31. IEmac = (IE4 && appVer.indexOf("Mac") != -1);
  32. IE4mac = (IEmac && appVer.indexOf("MSIE 4") != -1);
  33. IE40mac = (IE4mac && appVer.indexOf("4.0;") != -1);
  34. IE45mac = (IE4mac && appVer.indexOf("4.5;") != -1);
  35. NSpre401 = (NS4 && (parseFloat(appVer) <= 4.01));
  36. NSpre403 = (NS4 && (parseFloat(appVer) <= 4.03));
  37. FDRjustFlip = (window.FDRjustFlip) ? FDRjustFlip : false;
  38. FDRhdlineCount = (window.FDRhdlineCount) ? FDRhdlineCount : 1;
  39. FDRfinite = (FDRmaxLoops > 0);
  40. FDRisOver = false;
  41. FDRloadCount = 0;
  42. blendTimer = null;
  43. if (!window.prefix) prefix = "";
  44. window.onload = FDRcountLoads;
  45. if (NS4) {
  46. if(FDRjustFlip || NSpre403) {
  47. totalLoads = 1;
  48. FDRfadeImg = new Object();
  49. FDRfadeImg.width = FDRboxWid - (FDRborWid*2);;
  50. }
  51. else {
  52. totalLoads = 2;
  53. FDRfadeImg = new Image();
  54. FDRfadeImg.onload = FDRcountLoads;
  55. FDRfadeImg.onerror = FDRcountLoads;
  56. FDRfadeImg.src = FDRgifSrc;
  57. }
  58. }
  59. function FDRcountLoads(e) {
  60. if (IE4) {
  61. setTimeout("FDRinit()",1);
  62. }
  63. else {
  64. if(e.type == "error") FDRjustFlip = true; 
  65. FDRloadCount++;
  66. if (FDRloadCount==totalLoads) {
  67. origWidth = innerWidth;
  68. origHeight = innerHeight;
  69. window.onresize = function(){
  70. if (innerWidth==origWidth && innerHeight==origHeight) return;
  71. location.reload();
  72. }
  73. FDRinit();
  74. }
  75. }
  76. }
  77. function FDRinit(){
  78. if(!window.arNews) {
  79. if(!window.arTXT || !window.arURL) return;
  80. if(arTXT.length != arURL.length) return;
  81. arNews = [];
  82. for (i=0;i<arTXT.length;i++){
  83. arNews[arNews.length] = arTXT[i];
  84. arNews[arNews.length] = arURL[i];
  85. }
  86. }
  87.     if (NS4) {
  88.         if (!document.elFader) return;
  89. with(document.classes.newslink.A) {
  90. textDecoration = FDRlnkDec;
  91. color = FDRlnkCol;
  92. fontWeight = FDRfntWgh;
  93. fontSize = FDRfntSiz;
  94. fontStyle = FDRfntSty;
  95. fontFamily = FDRfntFam;
  96. lineHeight = FDRlinHgt;
  97. textAlign = FDRtxtAln;
  98. }
  99. with(document.classes.nolink.P) {
  100. color = FDRfntCol;
  101. fontWeight = FDRfntWgh;
  102. fontSize = FDRfntSiz;
  103. fontStyle = FDRfntSty;
  104. fontFamily = FDRfntFam;
  105. lineHeight = FDRlinHgt;
  106. textAlign = FDRtxtAln;
  107. }
  108.         elFader = document.elFader;
  109. with (elFader) {
  110. document.write(" ");
  111. document.close();
  112. bgColor = FDRborCol;
  113. clip.width = FDRboxWid;
  114. clip.height = FDRboxHgt;
  115. }
  116. contWidth = FDRboxWid - (FDRborWid*2);
  117. contHeight = FDRboxHgt - (FDRborWid*2);
  118. elCont = new Layer(contWidth,elFader);
  119. with (elCont) {
  120. top = FDRborWid;
  121. left = FDRborWid;
  122. clip.width = contWidth;
  123. clip.height = contHeight;
  124. bgColor = FDRbackCol;
  125. visibility = "inherit";
  126. }
  127. newsWidth = contWidth - (FDRboxPad*2);
  128. newsHeight = contHeight - (FDRboxPad*2);
  129.         elNews = new Layer(newsWidth,elCont);
  130. with (elNews) {
  131. top = FDRboxPad;
  132. left = FDRboxPad;
  133. clip.width = newsWidth ;
  134. clip.height = newsHeight;
  135. }
  136. if (!FDRjustFlip) {
  137. elGif = new Layer(contWidth,elCont); 
  138.         imStr = "<IMG SRC='" + FDRgifSrc +"' WIDTH="+ Math.max(FDRfadeImg.width,(FDRboxWid - (FDRborWid*2)));
  139. imStr += (NSpre403) ? " onError='window.FDRjustFlip = true'>" : ">";
  140.         with (elGif) {
  141. document.write(imStr);
  142.          document.close();
  143. moveAbove(elNews);
  144. }
  145. imgHeight = elGif.document.height;
  146. slideInc = (imgHeight/(FDRblendDur*1000/FDRgifInt));
  147. startTop = -(imgHeight - FDRboxHgt);
  148. }
  149. elFader.visibility =  "show";
  150.     }
  151.     else {
  152.         if (!window.elFader) return;
  153. elFader.innerHTML ="";
  154. if(IE4mac) {
  155. document.body.insertAdjacentHTML("BeforeBegin","<STYLE></STYLE>");
  156. }
  157. else {
  158. if (!document.styleSheets.length) document.createStyleSheet();
  159. }
  160. with (document.styleSheets(document.styleSheets.length-1)) {
  161. addRule("A.newslink","text-decoration:"+FDRlnkDec+";color:"+ FDRlnkCol);
  162. addRule("A.newslink:hover","color:"+ FDRhovCol);
  163. }
  164. with (elFader.style) {
  165. errorOffset = (IE4mac) ? (FDRboxPad + FDRborWid) : 0;
  166. width = FDRboxWid - (errorOffset * 2);
  167. height = FDRboxHgt - (errorOffset * 2);
  168. if(IE4mac && !IE45mac){
  169. pixelLeft = elFader.offsetLeft + errorOffset;
  170. pixelTop = elFader.offsetTop + errorOffset;
  171. }
  172. backgroundColor = FDRbackCol;
  173. overflow = "hidden";
  174. color = FDRfntCol;
  175. fontWeight = FDRfntWgh;
  176. fontSize = FDRfntSiz;
  177. fontStyle = FDRfntSty;
  178. fontFamily = FDRfntFam;
  179. lineHeight = FDRlinHgt;
  180. textAlign = FDRtxtAln;
  181. cursor = "default";
  182. visibility = "visible";
  183. borderWidth = FDRborWid;
  184. borderStyle = FDRborSty;
  185. borderColor = FDRborCol;
  186. padding  = FDRboxPad;
  187. if(!FDRjustFlip) filter = "blendTrans(duration=" + FDRblendDur + ")";
  188. }
  189. elFader.onselectstart = function(){return false};
  190. IEhasFilters = (elFader.filters.blendTrans) ? true : false;
  191.     }
  192. if (!NSpre401) {
  193. elFader.onmouseover = function (){
  194. FDRisOver = true;
  195. }
  196. elFader.onmouseout = function(){
  197. FDRisOver = false;
  198. status = "";
  199. }
  200. }
  201. FDRstart(0);
  202. }
  203. function FDRstart(ind){
  204.     newsCount = ind;
  205.     if (FDRfinite) loopCount = 0;
  206.     FDRdo();
  207.     blendTimer = setInterval("FDRdo()",FDRblendInt*1000)
  208. }
  209. function FDRdo() {
  210. if(!blendTimer && loopCount>0) return;
  211.     if (FDRfinite && loopCount==FDRmaxLoops) {
  212.         FDRend();
  213. return;
  214.     }
  215. FDRfade();
  216.     if (newsCount == arNews.length) {
  217.         newsCount = 0;
  218.         if (FDRfinite) loopCount++;
  219.     }
  220. }
  221. function FDRmakeStr(){
  222. tempStr = "";
  223. for (i=0;i<FDRhdlineCount;i++){
  224. if(newsCount>=arNews.length)break;
  225. dispStr = arNews[newsCount];
  226. linkStr = arNews[newsCount+1];
  227. isLink = linkStr.length;
  228. if (isLink) {
  229. tempStr += "<P><A CLASS=newslink "
  230. + "HREF='" + prefix + linkStr + "'>"
  231.             + dispStr + "</A></P>"
  232. }
  233. else {
  234. tempStr += ((NS4) ? "<P CLASS=nolink>" : "<P>") +dispStr+"</P>";
  235. }
  236.         if(IE40mac) tempStr +="<BR>";
  237. newsCount += 2;
  238. }
  239. return tempStr;
  240. }
  241. function FDRfade(){
  242. newsStr = FDRmakeStr();
  243.     if (NS4) {
  244. if (!FDRjustFlip) {
  245. elGif.top = startTop;
  246. elGif.visibility = "inherit";
  247. }
  248. elNews.visibility = "hide";
  249.         with (elNews.document) {
  250.             write(newsStr);
  251.             close();
  252.         }
  253. elNews.visibility = "inherit";
  254.     }
  255.     else {
  256.         if(IEhasFilters)elFader.filters.blendTrans.Apply();
  257.         elFader.innerHTML = newsStr;
  258.         if(IEhasFilters)elFader.filters.blendTrans.Play();
  259.     }
  260. if(FDRhdlineCount==1) window.status = (FDRisOver && isLink) ? (prefix + linkStr) : "";
  261.     if (NS4 && !FDRjustFlip) FDRslide();
  262. }
  263. function FDRslide(){
  264.     elGif.top += slideInc;
  265.     if (elGif.top >= 0) {elGif.visibility = "hide";return}
  266.     setTimeout("FDRslide()",FDRgifInt);
  267. }
  268. function FDRdblClickNS(){
  269. elFader.releaseEvents(Event.DBLCLICK);
  270. FDRstart(startIndex);
  271. return false;
  272. }
  273. function FDRend(){
  274. clearInterval(blendTimer);
  275. blendTimer = null;
  276. if (FDRendWithFirst) {
  277. newsCount = 0;
  278. FDRfade();
  279. }
  280. if (FDRreplayOnClick) {
  281. startIndex = FDRendWithFirst ? (FDRhdlineCount * 2) : 0;
  282. if (IE4) {
  283. elFader.title = "Double click to replay";
  284. elFader.ondblclick = function(){
  285. this.ondblclick = null;
  286. this.title = "";
  287. FDRstart(startIndex);
  288. }
  289. }
  290. else {
  291. elFader.captureEvents(Event.DBLCLICK);
  292. elFader.ondblclick = FDRdblClickNS;
  293. }
  294.     }
  295. }