1/** 2 * æ¬ç»ä»¶æä¾äºxæ°é»æ»å¨çåè½ã å¯ä»¥æ ¹æ®ç¨æ·ä¼ å ¥çæ»å¨éåº¦ãæ»å¨è·ç¦»ï¼çåæ°ï¼å°æ°é»å表çæå°æå®ç容å¨ä¸ï¼å¹¶è®©æ°é»å表ä¸çæ°é»è¿è¡æ»å¨ã 3 */ 4 5Ext.ns("com.trs.ScrollNews"); 6(function() { 7 //ç¼å²æ°äº§çç对象ï¼ä»¥ä¾¿å¯ä»¥æ§è¡éæ¯ 8 var cache = {}; 9 10 /** 11 * 12 * @this {String} container: æ»å¨æ°é»å°æ¸²æå¨id为domIdç容å¨ä¸ <br> 13 * @this {String}direction: æ°é»æ»å¨æ¹å 14 * @this {String}speed: æ°é»æ»å¨çé度ï¼å¼è¶å¤§æ»å¨çè¶æ ¢ï¼ 15 * @this {String}space: æ°é»æ¯æ¬¡æ»å¨çåç´ ï¼å¼è¶å¤§æ°é»æ»å¨ä¸æ¬¡ç§»å¨çè·ç¦»è¶å¤§ï¼ 16 */ 17 com.trs.ScrollNews = function(cfg) { 18 cache[cfg.container] = this; 19 Ext.apply(this,cfg); 20 this.speed = parseInt(this.speed, 10) || 50; 21 this.space = parseInt(this.space, 10) || 2; 22 this.content = $(this.container).innerHTML; 23 } 24 25 /** 26 * 27 */ 28 com.trs.ScrollNews.get = function(container){ 29 return cache[container]; 30 } 31 32 com.trs.ScrollNews.prototype = { 33 /** 34 * æ ¹æ®ä¼ å ¥çé 置信æ¯ï¼å°æ»å¨æ°é»å表渲æå¨æå®ç容å¨å 35 * 36 */ 37 render : function() { 38 var container = $(this.container); 39 if (!container) { 40 return; 41 } 42 43 // 产çä¸ä¸ªæ¯è¾é¿ç容å¨ï¼ä»è使å é¨çæ°é»å¨ä¸è¡ï¼æè åä¸åï¼æ¾ç¤ºï¼ä¸åºç°æè¡ 44 var bigDiv = document.createElement("div"); 45 Element.addClassName(bigDiv,"ScrollNews"+this.direction+"Cls"); 46 bigDiv.style.zoom = 1;// è§£å³ie6ä¸å¯è½åå¨çä¸è½æ£ç¡®æ¾ç¤ºçbug 47 48 /* 49 * å建两个ç¸åçådiv容å¨ï¼æ¯ä¸ªdivéé¢å å«äºææçæ°é» 50 * 为ä»ä¹å建两个ç¸åçdivï¼æ¯ä¸ºäºè§£å³æ°é»å表æ»å¨å°æå°¾é¨çæ¶åå忢 å°æåä½ç½®æ¶çéªå¨ç°è±¡ 51 */ 52 this.div1 = document.createElement("div"); 53 this.div1.innerHTML = this.content; 54 this.div2 = document.createElement("div"); 55 this.div2.innerHTML = this.div1.innerHTML; 56 Element.addClassName(this.div1, "div1Cls"); 57 Element.addClassName(this.div2, "div2Cls"); 58 // å°å建ç大çdivæ·»å å°æå®ç容å¨å 59 bigDiv.appendChild(this.div1); 60 bigDiv.appendChild(this.div2); 61 container.innerHTML = ''; 62 container.appendChild(bigDiv); 63 if(this.direction =="vertical"){ 64 container.style.height = (this.rollingHeight||20)+"px"; 65 } 66 var context = this; 67 container.onmouseover = function() { 68 context.stop(); 69 }; 70 container.onmouseout = function() { 71 context.play(); 72 }; 73 74 this.play(); 75 }, 76 77 // private 78 play : function() { 79 var context = this; 80 clearInterval(this.intervalHandler); 81 this.intervalHandler = setInterval(function() { 82 context.scrollNext(); 83 }, this.speed); 84 }, 85 86 // private 87 stop : function() { 88 clearInterval(this.intervalHandler); 89 }, 90 // private 91 scrollNext : function() { 92 var container = $(this.container); 93 try { 94 if(this.direction == "vertical"){ 95 container.scrollTop += this.space; 96 // å¦æç¬¬ä¸ä¸ªæ°é»åè¡¨å·²ç»æ»å°å®¹å¨å¤é¢ï¼è¯´æéè¦éæ°åå§å第ä¸ä¸ªæ°é»å表çä½ç½® 97 if (container.scrollTop > this.div1.scrollHeight) { 98 container.scrollTop = container.scrollTop 99 - this.div1.scrollHeight; 100 } 101 } 102 103 else{ 104 container.scrollLeft += this.space; 105 106 // å¦æç¬¬ä¸ä¸ªæ°é»åè¡¨å·²ç»æ»å°å®¹å¨å¤é¢ï¼è¯´æéè¦éæ°åå§å第ä¸ä¸ªæ°é»å表çä½ç½® 107 if (container.scrollLeft > this.div1.scrollWidth) { 108 container.scrollLeft = container.scrollLeft 109 - this.div1.scrollWidth; 110 }; 111 } 112 } catch (e) { 113 this.stop(); 114 return; 115 } 116 }, 117 118 /** 119 * æ¸ é¤ææ»å¨æ°é»ç»å®çå ³èäºä»¶ 120 */ 121 destroy : function() { 122 this.stop(); 123 var container = $(this.container); 124 container.onmouseover = null; 125 container.onmouseout = null; 126 delete this.div1; 127 delete this.div2; 128 } 129 }; 130})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.