亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js實現自動播放勻速輪播圖

發布時間:2020-08-30 11:07:48 來源:腳本之家 閱讀:375 作者:空谷丶幽蘭 欄目:web開發

本文實例為大家分享了js實現自動播放勻速輪播圖的具體代碼,供大家參考,具體內容如下

函數封裝: ( 勻速運動函數)

function animate(obj,target,step,speed){
  clearInterval(obj.timer);
 var absStep = Math.abs(step); 
 step = target > obj.offsetLeft ? absStep : -absStep;
 obj.timer = setInterval(function(){
  var distance = Math.abs(target - obj.offsetLeft);
  obj.style.left = obj.offsetLeft + step + 'px';
  if(distance < absStep){
  clearInterval(obj.timer);
  obj.style.left = target + 'px';
  }
 },speed);
 }

對象可以動態生成屬性,用對象的timer,避免了全局變量的使用,

實現步驟:

 1.動態生成ol導航條,并將導航條放入all中使其成為孩子節點
 2.根據ul中圖片數量動態生成li標簽,使li成為ol的子節點,
 3.給第0個li標簽加上顏色(添加屬性current)
 4.用設置的屬性的值去操作圖片使圖片移動,達到鼠標放上去移動到該圖片效果,排它原理實現樣式效果
 5.深度克隆ul中的第一張圖片并將圖片放在ul的末尾
 6.加入自動播放函數使其自動播放,設置兩個變量key,squre,key的值用來計算圖片的序號,squre用來計算當前li的序號
 7.自動播放函數中排他原理設置當前li標簽樣式
 8.在設置onmouseover和onmouseout事件鼠標放在盒子上暫停,鼠標離開盒子,繼續運動
 9.在鼠標放在li標簽時讓key等于當前圖片的index屬性值 ,并把key的值賦給squre。

實現細節:

1.動態給ul克隆出第0張圖片補到末尾,以實現自動輪播是無縫的效果,
2.克隆分深克隆和淺克隆,深克隆克隆帶標簽內的所有內容,
3.淺克隆只克隆外部標簽,深克隆參數為true

效果:

js實現自動播放勻速輪播圖

代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>勻速輪播動畫</title>
<style type="text/css">
 *{ padding:0; margin:0; list-style:none; border:0;}
 .all{
 width:500px;
 height:200px;
 padding:7px;
 border:1px solid #ccc;
 margin:100px auto;
 position:relative;
 }
 .screen{
 width:500px;
 height:200px;
 overflow:hidden; 
 position:relative;
 }

 .screen li{ 
 width:500px; 
 height:200px; 
 overflow:hidden; 
 float:left;
 }
 .screen ul{ 
 position:absolute;
 left:0; 
 top:0px;
 width:3000px;
 }
 .all ol{ 
 position:absolute; 
 right:10px; 
 bottom:10px;
 line-height:20px;
 text-align:center;
 }
 .all ol li{ 
 float:left; 
 width:20px; 
 height:20px; 
 background:#fff; 
 border:1px solid #ccc; 
 margin-left:10px; 
 cursor:pointer;
 }
 .all ol li.current{ 
 background:yellow;
 }
</style>
<script src="js/勻速運動.js"></script>
<script>
 function $(id){
  return document.getElementById(id);
 }
 window.onload = function(){
  var ul = $('ul');
  var all = $('all');
  var imgs = ul.getElementsByTagName('img');
  var ol = document.createElement('ol');
  all.appendChild(ol);
  for(var i=0;i<imgs.length;i++){
   var li = document.createElement('li');
   li.innerHTML = i+1;
   li.setAttribute('index',i);
   ol.appendChild(li);
  }
  ol.childNodes[0].className = 'current';
 
  var olLis = ol.children;
  for(var i=0;i<olLis.length;i++){
   olLis[i].onmouseover = function(){
    for(var j=0;j<olLis.length;j++){
     olLis[j].className = '';
    }
    this.className = 'current';
    var index = -500*this.getAttribute('index');
    animate(ul,index,20,10);
    key=this.getAttribute('index');
    squre = key;
   }
  }

 ul.appendChild(ul.children[0].cloneNode(true));

  var timer=null;
  var key=0;
  var squre = 0;
  timer=setInterval(autoPlay, 1000);
   function autoPlay(){
   key++; //記錄圖片
   squre++;//記錄導航條
   if(key>olLis.length){
    key=1;
    ul.style.left = 0 + 'px';
   }
   if(squre>=olLis.length){
    squre = 0;
   }
   animate(ul,-500*key,20,10);
   for(var i=0;i<olLis.length;i++){
    olLis[i].className = '';
   }
   olLis[squre].className = 'current';
   }
   all.onmouseover = function(){
   clearInterval(timer);
   }
   all.onmouseout = function(){
  timer=setInterval(autoPlay, 1000);
   }
 }
</script>
</head>
<body>
<div class="all" id='all'>
 <div class="screen">
  <ul id="ul">
   <li><img src="images/taobao/1.jpg" width="500" height="200" /></li>
   <li><img src="images/taobao/2.jpg" width="500" height="200" /></li>
   <li><img src="images/taobao/3.jpg" width="500" height="200" /></li>
   <li><img src="images/taobao/4.jpg" width="500" height="200" /></li>
   <li><img src="images/taobao/5.jpg" width="500" height="200" /></li>
  </ul>
 </div>

</div>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛隆县| 双流县| 甘孜县| 静海县| 杭州市| 正蓝旗| 杭锦后旗| 灵丘县| 邮箱| 惠东县| 房产| 凤山县| 永嘉县| 拜城县| 民县| 南江县| 偏关县| 临邑县| 敦煌市| 绥芬河市| 南华县| 云林县| 灌云县| 江陵县| 治县。| 开江县| 德钦县| 富民县| 平罗县| 山丹县| 阿克苏市| 九龙城区| 新和县| 凤冈县| 通许县| 尚志市| 建水县| 新郑市| 刚察县| 新昌县| 广元市|