純js實現(xiàn)無縫滾動功能代碼實例
更新時間:2020年02月21日 09:50:43 作者:秋夜雨巷
這篇文章主要介紹了純js實現(xiàn)無縫滾動功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了純js實現(xiàn)無縫滾動功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
HTML代碼
<!--父容器要使用overflow: hidden;-->
<div id="imgsList" style="height:150px;width:980px;overflow: hidden;">
<!--滾動容器-->
<div id="marquee_self">
<ul id="marquee_ul">
<li><img src="" width="180px" height="100px"></li>
<li><img src="" width="180px" height="100px"></li>
<li><img src="" width="180px" height="100px"></li>
</ul>
</div>
</div>
CSS代碼
#marquee_self *{
margin: 0;
padding: 0;
}
#marquee_self{
width: 1620px; //所有圖片長度個數(shù)*width
height: 100px; //圖片高度
//margin: 100px auto; 居中
background-color: #646464;
position: relative;
overflow: hidden;
}
#marquee_self ul{
position:absolute;
left:0;
top:0;
overflow: hidden; //li中超出部分隱藏掉
background-color: #3b7796; //背景色用來看問題
}
#marquee_self ul li{
float: left; //左對齊變?yōu)閳D片水平
width: 180px; //圖片寬度
height: 100px; //圖片高度
list-style: none; //無間隙
}
JS代碼
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementById('marquee_self'); //容器節(jié)點
var oUl = document.getElementById('marquee_ul'); //ul節(jié)點
var speed = -2; //初始化速度,默認往左
oUl.innerHTML += oUl.innerHTML;//ul中圖片內(nèi)容翻倍
var oLi= oUl.getElementsByTagName('li'); //獲取ul節(jié)點下所有l(wèi)i集合
oUl.style.width = oLi.length*180+'px';//設置ul的寬度翻倍后的寬度,使圖片可以放下
/*var oBtn1 = document.getElementById('btn_left'); 左移動按鈕
var oBtn2 = document.getElementById('btn_right'); 右移動按鈕*/
function move(){
if(oUl.offsetLeft<-(oUl.offsetWidth/2)){ //向左滾動,當向左滾動超過總ul長度一半時
oUl.style.left = 0; //變?yōu)閺念^開始
}
if(oUl.offsetLeft > 0){ //向右滾動,當靠右的圖1移出邊框時
oUl.style.left = -(oUl.offsetWidth/2)+'px';
}
oUl.style.left = oUl.offsetLeft + speed + 'px'; //圖片移動
}
/*oBtn1.addEventListener('click',function(){ //向左移動按鈕點擊事件
speed = -2;
},false);
oBtn2.addEventListener('click',function(){ //向右移動按鈕點擊事件
speed = 2;
},false);*/
var timer = setInterval(move,30);//全局變量 ,保存返回的定時器
oDiv.addEventListener('mouseout', function () { //鼠標移開添加計時器
timer = setInterval(move,30);
},false);
oDiv.addEventListener('mousemove', function () { //鼠標移入清除定時器
clearInterval(timer);
},false);
}
</script>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
原生JavaScript實現(xiàn)連連看游戲(附源碼)
原生JavaScript版連連看游戲,有源碼,適合初學者學習,喜歡的朋友可以研究下2013-11-11
'webpack-dev-server'?不是內(nèi)部或外部命令也不是可運行的程序?或批處理文件的最
這篇文章主要介紹了'webpack-dev-server'?不是內(nèi)部或外部命令也不是可運行的程序?或批處理文件的最新解決方法,文中給大家補充介紹了webpack-dev-server的介紹與用法,需要的朋友可以參考下2023-02-02
JS實現(xiàn)獲取word文檔內(nèi)容并輸出顯示到html頁面示例
這篇文章主要介紹了JS實現(xiàn)獲取word文檔內(nèi)容并輸出顯示到html頁面,結(jié)合實例形式分析了JavaScript使用ActiveXObject組建操作word文件的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-06-06
Javascript中扁平化數(shù)據(jù)結(jié)構(gòu)與JSON樹形結(jié)構(gòu)轉(zhuǎn)換詳解
之前朋友問過我一個問題,項目中遇到扁平化數(shù)據(jù)結(jié)構(gòu)不知如何樹形化,下面這篇文章主要給大家介紹了關(guān)于Javascript中扁平化數(shù)據(jù)結(jié)構(gòu)與JSON樹形結(jié)構(gòu)轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2022-05-05

