IE 上下滾動展示模仿Marquee機制
更新時間:2009年12月20日 02:11:13 作者:
最近要做一個大屏幕展示上下滾動的列表,而IE自帶的Marquee,無法滿足需要,隨自己寫了一個滾動機制,代碼在附件中
復制代碼 代碼如下:
var STARTINGOPACITY = 40; //設(shè)置不透明度
var STARTINP = 70;//設(shè)置透明度
var SCROLLSTUP = 1;//滾動速度,1為一個像素
var SCROLLSYY = 100;//滾動時間請求
var reqflg = false;
// handles manual scrolling of the content //
function scrollContent(pardiv,id,sub) {
var div = document.getElementById("textslider");
var divsub = document.getElementById(sub);
var divpar = document.getElementById(pardiv);
clearInterval(div.timer);
div.style.opacity = STARTINGOPACITY * .01;
div.style.filter = 'alpha(opacity=' + STARTINP + ')';
var div2 = document.getElementById("textslider2");
if(div2!=null){
clearInterval(div2.timer);
div2.style.opacity = STARTINGOPACITY * .01;
div2.style.filter = 'alpha(opacity=' + STARTINP + ')';
}
var tem = div.innerHTML;//第一個頁
tem1 = "<div class=\"slidercontent1\" id=\"textslider2\">"+tem+"</div>";//第二個頁
var objheight = divpar.offsetHeight;
var divheight = div.offsetHeight;
//判斷是否需要滾屏,如果不需要就不滾動
if(objheight<divheight){
if(!reqflg){
divpar.innerHTML += tem1;
reqflg = true;
div = document.getElementById("textslider");
div2 = document.getElementById("textslider2");
//設(shè)置高度
div2.style.top = divheight-1+ "px";
}
div.timer = setTimeout( function() { scrollAnimate(div,div2) }, SCROLLSYY);
}
}
function scrollAnimate(div,div2) {
//獲取兩個子div的top值
var divtop = div.offsetTop;
//alert(divtop);
if(divtop==0){
div.style.top = "0px";
divtop = 0;
}
var div2top = div2.offsetTop;
if(div2top==0){
div2top = 0;
div2.style.top = "0px";
}
if(divtop<div2top){
//1號在上面 2號在下面
div.style.top = divtop - SCROLLSTUP+'px';
div2.style.top = div2top - SCROLLSTUP+'px';
//alert("div.style.top:"+div.style.top+"---div2.style.top:"+div2.style.top+":height:"+div.offsetHeight);
//判斷是否交換位置,如果高度位置等于top那么交換
if(div.offsetTop==-div.offsetHeight){
//將top設(shè)置為最下面
div.style.top = div2.offsetHeight;
}
}else{
//2號在上面 1號在下面
div2.style.top = div2top - SCROLLSTUP+'px';
div.style.top = divtop - SCROLLSTUP+'px';
//判斷是否交換位置,如果高度位置等于top那么交換
if(div2.offsetTop==-div2.offsetHeight){
//將top設(shè)置為最下面
div2.style.top = div.offsetHeight;
}
}
div.timer = setTimeout( function() { scrollAnimate(div,div2) }, SCROLLSYY);
}
// cancel the scrolling on mouseout //
function cancelScroll(pardiv,id,sub) {
var div = document.getElementById(id);
div.style.opacity = 1;
div.style.filter = 'alpha(opacity=100)';
clearTimeout(div.timer);
var div2 = document.getElementById("textslider2");
if(div2!=null){
div2.style.opacity = 1;
div2.style.filter = 'alpha(opacity=100)';
clearTimeout(div2.timer);
}
}
代碼打包下載
相關(guān)文章
JavaScript基本語法_動力節(jié)點Java學院整理
這篇文章主要介紹了JavaScript基本語法,適合剛?cè)腴T的同學,有興趣的可以了解下。2017-06-06
JavaScript的String字符串對象常用操作總結(jié)
String對象用于存儲字符串數(shù)據(jù),這里我們做了JavaScript的String字符串對象常用操作總結(jié),需要的朋友可以參考下2016-05-05
JavaScript Map實現(xiàn)原理與底層結(jié)構(gòu)詳解
哈希表(也稱為哈希表)是一種基于鍵直接訪問內(nèi)存存儲位置的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過計算一個鍵值函數(shù)來加速查找,該函數(shù)將要查詢的數(shù)據(jù)映射到表中的某個位置。該映射函數(shù)稱為散列函數(shù),記錄數(shù)組稱為散列表2022-09-09
JavaScript中判斷頁面關(guān)閉、頁面刷新的實現(xiàn)代碼
這篇文章主要介紹了JavaScript中判斷頁面關(guān)閉、頁面刷新的實現(xiàn)代碼,在一些特殊的場合中會用到這個技術(shù),需要的朋友可以參考下2014-08-08
uni-app集成使用SQLite數(shù)據(jù)庫的方法步驟
這篇文章主要介紹了uni-app集成使用SQLite數(shù)據(jù)庫的相關(guān)資料,包括勾選SQLite選項、封裝sqlite.js文件以及在使用時注意的事項,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2025-01-01
javascript中parseInt()函數(shù)的定義和用法分析
這篇文章主要介紹了javascript中parseInt()函數(shù)的定義和用法,較為詳細的分析了parseInt()函數(shù)的定義及具體用法,以及參數(shù)使用時的注意事項,需要的朋友可以參考下2014-12-12
JavaScript計算字符串中每個字符出現(xiàn)次數(shù)的小例子
這篇文章介紹了在JS中計算字符串中每個字符出現(xiàn)的次數(shù),有需要的朋友可以參考一下2013-07-07

