真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖

最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個簡單的輪播圖,因為無法顯示動態(tài)效果,所以就放個截圖:

采用H5建站+css3國際標(biāo)準(zhǔn)網(wǎng)站建設(shè),讓網(wǎng)站自動適應(yīng)用戶使用終端設(shè)備,PC、平板、手機等,一個網(wǎng)址適應(yīng),一套內(nèi)容統(tǒng)一戰(zhàn)略,節(jié)約企業(yè)資源。創(chuàng)新互聯(lián)還提供網(wǎng)站后期營銷如:軟文推廣、友情鏈接、廣告投放平臺等。一般建站公司不為企業(yè)填充資料,更談不上內(nèi)容策劃,結(jié)果導(dǎo)致網(wǎng)站界面優(yōu)秀,內(nèi)容卻十分空泛或整體不協(xié)調(diào),內(nèi)容策劃、內(nèi)容填充請交給我們。

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖

這個效果是這樣的:一共有7張圖片,它們會自動地向左滑動,然后左右箭頭也可以控制輪播圖的左滑和右滑,同時,如果鼠標(biāo)停在圖片上,那么輪播圖會停止自動滑動,當(dāng)鼠標(biāo)移開時,將會繼續(xù)向左輪播。
首先,我這里封裝了兩個函數(shù)(因為暫且還沒有學(xué)jQuery,所以用了封裝函數(shù)的方法來實現(xiàn)),第一個函數(shù)是$函數(shù),調(diào)用可以獲取html中的元素,代碼如下:

`function $(select){
    if (typeof select != 'string') {
      console.log('傳入的參數(shù)有誤');     
      return null;
    }
    var firstChar = select.charAt(0);
    switch(firstChar){
      case '#':
        return document.getElementById(select.substr(1));
      break;
      case '.':
        if (document.getElementsByClassName){
          return document.getElementsByClassName(select.substr(1));
        } else {
          var result = [];
          var allElemnts = document.getElementsByTagName('*');
          console.log(allElemnts);
          for (var i = 0; i < allElemnts.length; i++){
            var e = allElemnts[i];
            var className = e.className;
            var classArr = className.split(' ');
            for (var j = 0; j < classArr.length; j++){
              var c = classArr[j];
              if (c == select.substr(1)) {
                result.push(e);
                break;
              }
            }
          }
          return result;
        }
      break;
      default :
        return document.getElementsByTagName(select);
    }
  }`

第二個函數(shù)是一個動畫函數(shù),用json實現(xiàn)多條樣式的動態(tài)改變,從而達到一個動畫效果,代碼如下: `

function animate(element, json, fun) {
  clearInterval(element.timer);
  function getStyle(element, styleName){
    if(element.currentStyle){
      //ie瀏覽器下 直接通過currentstyle來獲取
      //return element.currentStyle.heigh;
      return element.currentStyle[styleName];
    }else{
      var computedStyle = window.getComputedStyle(element,null);
      return computedStyle[styleName];
    }
  }
  var isStop = false;
  element.timer = setInterval(function () {
    isStop = true;
    for (var key in json){
      var target = json[key];
      var current;
      if (key == 'opacity') {
        //當(dāng)動畫的類型為透明度時 獲取的值應(yīng)該是浮點類型
        current = parseFloat(getStyle(element, key)) || 1;
      } else {
        //其他情況 用整數(shù)類型
        current = parseInt(getStyle(element, key)) || 0;
      }      
      var step = (target - current) / 10;
      if (key != 'opacity') {
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
      }
      current += step;
      if (key == 'opacity') {
        if (Math.abs(target - current) > 0.01) {
          isStop = false;
        } else {
          current = target;
        }
        element.style.opacity = current + '';
      } else {
        if (Math.abs(target-current) > Math.abs(step)) {
          isStop = false;
        } else {
          current = target;
        }
        if (key == 'zIndex'){
          element.style.zIndex = Math.round(current);
        } else {
          element.style[key] = current + 'px';
        }        
      }      
    }
    if (isStop) {
      clearInterval(element.timer);
      console.log('動畫完成');
      if (typeof fun == 'function') {
        fun();
      }
    }
  }, 30);
}`

接下來就要寫html的部分了,因為只有幾張圖片,所以html的部分很簡單:


  

css樣式的部分也不多做敘述。

下面就是JS是部分啦,代碼也很簡單,理清楚就好

 window.onload = function(){
  //定位,并給圖片設(shè)置大小透明度
  var json = [{
    width: 630,
    top: 23,
    left: 0,
    zIndex: 2,
    opacity: 0
  },{
    width: 630,
    top: 23,
    left: 0,
    zIndex: 3,
    opacity: 0
  },{
    width: 630,
    top: 23,
    left: 0,
    zIndex: 4,
    opacity: 0.6
  },{
    width: 730,
    top: 0,
    left: 125,
    zIndex: 5,
    opacity: 1
  },{
    width: 630,
    top: 23,
    left: 350,
    zIndex: 4,
    opacity: 0.6
  },{
    width: 630,
    top: 23,
    left: 350,
    zIndex: 3,
    opacity: 0
  },{
    width: 630,
    top: 23,
    left: 350,
    zIndex: 2,
    opacity: 0
  }];
function refreshImageLocatin(index){
    //默認(rèn)情況下 第i張圖對應(yīng)第i個位置
    //index=1時 第i個圖對應(yīng)i-1個位置
    //也就是第i個圖對應(yīng)i-index的位置
    var liArr = $('li');
    for(var i = 0; i < liArr.length; i++){
      var li = liArr[i];
      var locationIndex = i - index;
      console.log('i='+i);
      console.log('index='+index);
      console.log('locationIndex='+locationIndex);
      if(locationIndex < 0){
        locationIndex += 7;
      }
      var locationData = json[locationIndex];
      animate(li, locationData, null);
    }
  }

  refreshImageLocatin(0);

  var index = 0;
  $('#next').onclick = function(){
    index++;
    if(index == 7){
      index = 0;
    }
    refreshImageLocatin(index);
  }
  $('#prev').onclick = function(){
    index--;
    if(index < 0){
      index = 6;
    }
    refreshImageLocatin(index);
  }

  var nextImage = $('#next').onclick;
  var contentBox = $('.content')[0];
  //自動播放
  var timer = setInterval(nextImage, 3000);
  //當(dāng)鼠標(biāo)移動到圖片上,停止播放
  contentBox.onmouseover = function(){
    clearInterval(timer);
  }
  contentBox.onmouseout = function(){
    timer = setInterval(nextImage ,3000)
  }
}

以上就是旋轉(zhuǎn)輪播圖的全部內(nèi)容了,給自己的學(xué)習(xí)過程做個簡單的記錄,也順便鞏固一下。


本文名稱:JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖
網(wǎng)站URL:http://weahome.cn/article/podghi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部