欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生JS實(shí)現(xiàn)風(fēng)箱式demo,并封裝了一個運(yùn)動框架(實(shí)例代碼)

 更新時(shí)間:2016年07月22日 08:36:18   投稿:jingxian  
下面小編就為大家?guī)硪黄鶭S實(shí)現(xiàn)風(fēng)箱式demo,并封裝了一個運(yùn)動框架(實(shí)例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

聲明,該DEMO依托于某個培訓(xùn)機(jī)構(gòu)中,非常感謝這個培訓(xùn)結(jié)構(gòu)。話不多說,現(xiàn)在開始改demo的制作。

首先,在前端的學(xué)習(xí)過程中,輪播圖是我們一定要學(xué)習(xí)的,所以為了更加高效的實(shí)現(xiàn)各種輪播圖,封裝了一個運(yùn)動的框架。

function getStyle(obj,attr) {
  if(obj.currentStyle){
    return obj.currentStyle[attr];//為了獲取IE下的屬性值
  }else{
    return window.getComputedStyle(obj,null)[attr];//為了獲取W3C瀏覽器下的屬性值
  }
}

function animate(obj,json){
  clearInterval(obj.timer);
  obj.timer = setInterval(function () {
    var flag = true;
    var current = 0;
    for(var attr in json){
      if(attr == 'opacity'){
        current = parseInt(getStyle(obj,attr)*100);
      }else{
        current = parseInt(getStyle(obj,attr));
      };

      var step = (json[attr] - current) / 10;
      step = step > 0 ? Math.ceil(step) : Math.floor(step);
      //先判斷屬性是否為透明度
      if(attr == 'opacity'){
        //首先判斷瀏覽器是否支持opacity
        if('opacity' in obj.style){
          obj.style.opacity = (current + step) / 100;
        }else{
          obj.style.filter = 'alpha(opacity = ' + (current + step) + ')';
        }
      //再判斷屬性是否為z-index
      }else if(attr == 'zIndex'){
        obj.style.zIndex = json[attr];
      //最后再判斷
      }else{
        obj.style[attr] = current + step + 'px';
      }

      if(current != json[attr]){
        flag = false;
      }
    }

    if(flag){
      clearInterval(obj.timer);
    }
  },5);
}

在該框架中兼容了不同的瀏覽器,并且允許傳入opacity和z-index這樣的屬性,當(dāng)然,像width,height,left,right這樣常見的屬性是必不可少的。利用該框架,可以實(shí)現(xiàn)非常棒的效果。所以現(xiàn)在開始正式做該DEMO。

首先是index.html的制作。

<div id="box">
  <ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>

index.html的制作非常的簡單,我們會將圖片作為li的背景圖片在javascript中進(jìn)行插入。之后,我們進(jìn)行CSS樣式的調(diào)節(jié)。

*{
    margin:0px;
    padding:0px;
  }
  #box{
    width:1300px;
    height:400px;
    margin:100px auto;
    overflow: hidden;
  }
  #box ul{
    height:400px;
    width:1300px;
  }
  #box ul li{
    width:240px;
    height:400px;
    float:left;
    overflow: hidden;
  }

javascript的代碼如下:

window.onload = function () {
    var box = document.getElementById('box');
    var aLi = box.children[0].children;
    for(var i=0;i<aLi.length;i++){
      aLi[i].style.backgroundImage = 'url(' + 'images/' + (i + 1) + '.jpg';
      aLi[i].onmouseover = function(){
        for(var i=0;i<aLi.length;i++){
          animate(aLi[i],{width:100});
        }
        animate(this,{width:800});
      };
      aLi[i].onmouseout = function(){
        for(var i=0;i<aLi.length;i++){
          animate(aLi[i],{width:240});
        }
      }
    }
  }

這樣使用原生JS實(shí)現(xiàn)的風(fēng)箱效果demo就實(shí)現(xiàn)了,當(dāng)然,還可以利用封裝好的animate框架實(shí)現(xiàn)類似網(wǎng)易的輪播圖效果。

以上這篇原生JS實(shí)現(xiàn)風(fēng)箱式demo,并封裝了一個運(yùn)動框架(實(shí)例代碼)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript類的繼承方法小結(jié)【組合繼承分析】

    JavaScript類的繼承方法小結(jié)【組合繼承分析】

    這篇文章主要介紹了JavaScript類的繼承方法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript繼承的概念、原理及組合繼承相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-07-07
  • 微信企業(yè)號開發(fā)之微信考勤百度地圖定位

    微信企業(yè)號開發(fā)之微信考勤百度地圖定位

    本文給大家介紹微信企業(yè)號開發(fā)之微信考勤百度地圖定位,有需要的朋友參考下本篇文章
    2015-09-09
  • three.js如何實(shí)現(xiàn)3D動態(tài)文字效果

    three.js如何實(shí)現(xiàn)3D動態(tài)文字效果

    這篇文章主要給大家介紹了關(guān)于three.js如何實(shí)現(xiàn)3D動態(tài)文字效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JS實(shí)現(xiàn)普通輪播圖特效

    JS實(shí)現(xiàn)普通輪播圖特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)普通輪播圖特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 淺談js里面的InttoStr和StrtoInt

    淺談js里面的InttoStr和StrtoInt

    下面小編就為大家?guī)硪黄獪\談js里面的InttoStr和StrtoInt。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • JavaScript基礎(chǔ)語法之js表達(dá)式

    JavaScript基礎(chǔ)語法之js表達(dá)式

    這篇文章主要介紹了JavaScript基礎(chǔ)語法之js表達(dá)式 的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • JavaScript的setter與getter方法

    JavaScript的setter與getter方法

    這篇文章主要為大家詳細(xì)介紹了JavaScript的setter與getter方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 詳解js幾個繞不開的事件兼容寫法

    詳解js幾個繞不開的事件兼容寫法

    本篇文章主要介紹了詳解js幾個繞不開的事件兼容寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • JS+css 圖片自動縮放自適應(yīng)大小

    JS+css 圖片自動縮放自適應(yīng)大小

    編輯器上傳的圖片太大了,把FF和IE撐的走形,所以希望圖片在某些頁面里要有固定大小,如果需要某個范圍,用getElementByname來設(shè)定,也是一個道理:
    2013-08-08
  • 前端導(dǎo)航欄不變切換局部頁面的3種方法

    前端導(dǎo)航欄不變切換局部頁面的3種方法

    在開發(fā)網(wǎng)頁的過程中,經(jīng)常需要實(shí)現(xiàn)導(dǎo)航菜單的切換,下面這篇文章主要給大家介紹了關(guān)于前端導(dǎo)航欄不變切換局部頁面的3種方法,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-12-12

最新評論