全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用Require.js封装原生js轮播图的实现代码

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返回的是字符串中的字符数
    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); //总次数
    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; //当前步数
    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轮播图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# require.js封装  # js  # 轮播图  # angularjs封装$http为factory的方法  # AngularJS封装$http.post()实例详解  # 原生js封装自定义滚动条  # JS封装通过className获取元素的函数示例  # js封装tab标签页实例分享  # AngularJS封装指令方法详解  # JS封装的选项卡TAB切换效果示例  # 原生js封装的一些jquery方法(详解)  # javaScript封装的各种写法  # 小编  # 的是  # 在此  # 给大家  # 所占  # 所述  # 给我留言  # 三张  # 感谢大家  # 疑问请  # 有任何  # left  # absolute  # ul  # top  # bottom  # float  # li  # auto  # block 


相关文章: 如何在云服务器上快速搭建个人网站?  建站主机选哪家性价比最高?  教程网站设计制作软件,怎么创建自己的一个网站?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星官网登录失败?如何快速解决?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  建站之星安装步骤有哪些常见问题?  如何零基础在云服务器搭建WordPress站点?  Python多线程使用规范_线程安全解析【教程】  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何高效利用200m空间完成建站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  建站主机是什么?如何选择适合的建站主机?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  网站网页制作专业公司,怎样制作自己的网页?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  宝塔面板如何快速创建新站点?  小建面朝正北,A点实际方位是否存在偏差?  如何在IIS服务器上快速部署高效网站?  建站之星后台管理系统如何操作?  自助网站制作软件,个人如何自助建网站?  如何通过西部数码建站助手快速创建专业网站?  南平网站制作公司,2025年南平市事业单位报名时间?  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星安装提示数据库无法连接如何解决?  如何用花生壳三步快速搭建专属网站?  临沂网站制作企业,临沂第三中学官方网站?  定制建站方案优化指南:企业官网开发与建站费用解析  如何选择CMS系统实现快速建站与SEO优化?  临沂网站制作公司有哪些,临沂第四中学官网?  制作网站的基本流程,设计网站的软件是什么?  建站之星导航配置指南:自助建站与SEO优化全解析  如何彻底卸载建站之星软件?  网站制作软件有哪些,制图软件有哪些?  建站之星如何快速更换网站模板?  如何用景安虚拟主机手机版绑定域名建站?  山东云建站价格为何差异显著?  如何正确下载安装西数主机建站助手?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  定制建站是什么?如何实现个性化需求?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何在万网自助建站平台快速创建网站?  网站制作公司排行榜,四大门户网站排名?  红河网站制作公司,红河事业单位身份证如何上传?  测试制作网站有哪些,测试性取向的权威测试或者网站?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。