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

使用Require.js封裝原生js輪播圖的實現(xiàn)代碼

 更新時間:2017年06月15日 10:17:06   作者:誰是李慧  
這篇文章主要介紹了使用Require.js封裝原生js輪播圖的實現(xiàn)代碼,需要的朋友可以參考下

index.html頁面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>require.js封裝輪播圖</title>
<style type="text/css">
  *{
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #banner{
    width: 830px;
    height: 440px;
    border: solid 1px;
    margin: 50px auto;
    position: relative;
    overflow: hidden;
  }
  #banner ul{
    position: absolute;
    left: 0;
    top: 0;
  }
  #banner ul li{
    width: 830px;
    height: 440px;
    float: left;
  }
  #banner p{
    position: absolute;
    left: 50%;
    bottom: 10px;
    margin-left: -30px;
  }
  #banner p span{
    display: block;
    float: left;
    width: 15px;
    height: 15px;
    margin-right: 6px;
    background: #ccc;
    border-radius: 50%;
  }
  #banner p .on{
    background: red;
  }
</style>
<script type="text/javascript" src="require.js" data-main='init'></script>
<!--<script type="text/javascript">
  require(['slider'],function(mod){
  mod.slide()
})
</script>-->
</head>
<body>
  <div id="banner">
    <ul>
      <li><img src="images/1.jpg"/></li>
      <li><img src="images/2.jpg"/></li>
    </ul>
    <p>
      <span class="on"></span>
      <span></span>
      <span></span>
    </p>
  </div>
</body>
</html>

get.js代碼如下:

define(function(require,exports,module){
  exports.getStyle = function (obj,name){
    if(obj.currentStyle){
      return obj.currentStyle[name];
    }else{
      return getComputedStyle(obj,false)[name];
    };
  };
});

init.js代碼如下

require(['slider'],function(mod){
  mod.slide();
});

slider.js代碼如下

define(function(require, exports, module) {
  var move = require('StartMove');
  var aBtn = document.getElementById('banner').getElementsByTagName('span');
  var oUl = document.getElementById('banner').getElementsByTagName('ul')[0];
  var aLi = oUl.children;
  //三張圖片所占的寬度,length返回的是字符串中的字符數(shù)
    oUl.style.width = aLi.length * aLi[0].offsetWidth + 'px';
    exports.slide = function() {
      for(var i = 0; i < aBtn.length; i++) {
        aBtn[i].index = i;
        aBtn[i].onclick = function() {
          for(var i = 0; i < aBtn.length; i++) {
            aBtn[i].className = '';
          }
        aBtn[this.index].className = 'on';
          move.move(oUl, {
          left: -this.index * aLi[0].offsetWidth;
        });
      };
    };
  };
});

StartMove.js代碼如下

define(function(require, exports, module) {
  var get = require('get');
  exports.move = function move(obj, json, complete) {
    clearInterval(obj.timer);
    var complete = complete || {};
    complete.dur = complete.dur || 1000;
    complete.easing = complete.easing || 'ease-out';
    var count = parseInt(complete.dur / 30); //總次數(shù)
    var start = {}; //{width:300,height:300}
    var dis = {};
    //{width:300,height:300}
    for(var name in json) {
      start[name] = parseFloat(get.getStyle(obj, name));
      dis[name] = json[name] - start[name];
    }
    var n = 0; //當前步數(shù)
    obj.timer = setInterval(function() {
    n++;
    for(var name in json) {
      var a = n / count;
      switch(complete.easing) {
        case 'linear':
        var cur = start[name] + a * dis[name];
        break;
        case 'ease-in':
        var cur = start[name] + Math.pow(a, 3) * dis[name];
        break;
        case 'ease-out':
        var a = 1 - n / count;
        var cur = start[name] + (1 - Math.pow(a, 3)) * dis[name];
        break;
      };
      if(name == 'opacity') {
          obj.style[name] = cur;
          obj.style.filter = 'alpha(' + cur * 100 + ')';
        } else {
          obj.style[name] = cur + 'px';
        };
      };
      if(n == count) {
        clearInterval(obj.timer)
        complete.fn && complete.fn();
      };
    }, 30);
   };
 });

以上所述是小編給大家介紹的使用Require.js封裝原生js輪播圖,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • javascript while語句和do while語句的區(qū)別分析

    javascript while語句和do while語句的區(qū)別分析

    這篇文章通過實例代碼較詳細的給大家介紹了javascript while語句和do while語句的區(qū)別,感興趣的朋友一起看看吧
    2007-12-12
  • js仿微信語音播放實現(xiàn)思路

    js仿微信語音播放實現(xiàn)思路

    這篇文章主要為大家詳細介紹了js仿微信語音播放的實現(xiàn)思路,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript中的this指向和自定義屬性詳解

    JavaScript中的this指向和自定義屬性詳解

    下面小編就為大家?guī)硪黄猨s中的this指向和自定義屬性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • JavaScript中定時控制Throttle、Debounce和Immediate詳解

    JavaScript中定時控制Throttle、Debounce和Immediate詳解

    大家可能都知道JavaScript遵循事件驅(qū)動的編程范例,這意味著一些行為可以激活一些響應,并且這些響應僅在發(fā)生特定的行為時才被激活。這篇文章將給大家詳細介紹JavaScript中的定時控制Throttle、Debounce和Immediate,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-11-11
  • JS使用oumousemove和oumouseout動態(tài)改變圖片顯示的方法

    JS使用oumousemove和oumouseout動態(tài)改變圖片顯示的方法

    這篇文章主要介紹了JS使用oumousemove和oumouseout動態(tài)改變圖片顯示的方法,涉及javascript鼠標事件及圖片操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • javaScript window.event.keyCode 集合與測試方法

    javaScript window.event.keyCode 集合與測試方法

    javaScript window.event.keyCode 集合,對于事件的代碼獲取可以用腳本監(jiān)聽來實現(xiàn)。
    2010-05-05
  • js仿京東放大鏡

    js仿京東放大鏡

    這篇文章主要為大家詳細介紹了js仿京東放大鏡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Bootstrap-table自定義可編輯每頁顯示記錄數(shù)

    Bootstrap-table自定義可編輯每頁顯示記錄數(shù)

    這篇文章主要介紹了Bootstrap-table自定義可編輯每頁顯示記錄數(shù)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • JS教程:window.location使用方法的區(qū)別介紹

    JS教程:window.location使用方法的區(qū)別介紹

    這篇文章介紹了window.location使用方法的區(qū)別,有需要的朋友可以參考一下
    2013-10-10
  • 純javascript實現(xiàn)圖片延時加載方法

    純javascript實現(xiàn)圖片延時加載方法

    看到一篇博客說土豆網(wǎng)的圖片是延遲加載的。原理是這樣:頁面可見區(qū)域以下的圖片先不加載,等到用戶向下滾動到圖片位置時,再進行加載。這樣做的好處是當頁面有好幾屏內(nèi)容時,這樣我們就可以只加載用戶需要看的圖片,減少服務(wù)器向用戶瀏覽器發(fā)送圖片文件所產(chǎn)生的負荷。
    2015-08-08

最新評論