全网整合营销服务商

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

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

原生js实现焦点轮播图效果

原生js焦点轮播图主要注意这几点:

1、前后按钮实现切换,同时注意辅助图

2、中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index

3、间隔调用与无限轮播。

4、注意在动画时要停止按钮,或者说上一个动画完毕下一个动画才能执行

5、另外在切换图片的时候,底部的Button动画效果,是从底部开始往上升的,要用到transform:scale()和transform-origin:0 100%两个转换属性,代码如下

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8"/>
 <meta name="viewpoint" content="width=device-width,initial-scale=1,user-scalable="no">
 <title>20170101</title>
 <style type="text/css">
 a{text-decoration:none;color:#3DBBF5;}
 .wrapper{width:750px;height:350px;background:#001032;margin:20px auto;text-align:center;box-shadow:0 0 12px 2px hsla(0,20%,30%,0.5);padding:10px 15px;position:relative;}
 .effect{position:relative;cursor:pointer;}
 .effect:hover{color:#02a0e9;}
 .effect:before{width:100%;display:inline-block !important;position:absolute;height:1px;background:#02a0e9;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(0,1);content:'';bottom:-5px;left:0;}
 .effect:hover:before{transform:scale(1);-webkit-transform:scale(1);}
 #lunBo{margin-top:20px;overflow:hidden;height:300px;width:750px;position:relative;}
 #list{position:absolute;z-index:22;height:300px;width:5250px;}
 #list img{float:left;}
 #buttons { position: absolute; height: 20px; width: 150px; z-index: 99; bottom: 20px; left: 40%;}
    span { cursor: pointer; float: left; width: 10px; height: 5px; background: #333; margin-right: 10px;}
     .on { background: yellow;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(1,4);-ms-transform:scale(1,4);-moz-transform:scale(1,4);-webkit-transform:scale(1,4);transform-origin:0% 0%;-webkit-transform-origin:0% 100%;-moz-transform-origin:0% 100%;}
  .arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 100px; line-height:100px;position: absolute; z-index: 92; top: 30%; background-color: RGBA(0,0,0,.3); color: #fff;}
    .arrow:hover { background-color: RGBA(0,0,0,.7);}
    #lunBo:hover .arrow { display: block;}
    #prev { left: 0px;}
    #next { right: 0px;}
 </style>
 </head>
 <body>
 <div class="wrapper">
  <a class="effect" href="#">2016完了,2017来了</a>
  <div id="lunBo">
  <div id="list" style="left:-750px;">
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856m1bhxxx1d8jfnblb.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856z48mfrrr8u064rf6.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856e95yze236lvq7y2a.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/>
   <img src="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/>
  </div>
  <div id="buttons">
   <span index="1" class="on"></span>
   <span index="2"></span>
   <span index="3"></span>
   <span index="4"></span>
   <span index="5"></span>
  </div>
  <a href="javascript:;" id="prev" class="arrow">&lt;</a>
  <a href="javascript:;" id="next" class="arrow">&gt;</a>
  </div>
 </div>
 <script>
 window.onload = function(){
  var lunBo = document.getElementById('lunBo');
  var list = document.getElementById('list');
  var buttons = document.getElementById('buttons').getElementsByTagName('span');
  //console.log(buttons);
  var prev = document.getElementById('prev');
      var next = document.getElementById('next');
  var index = 1;
  var animated = false;
  var interval = 3000;
  var timer;
  //显示按钮的索引
  function showButton(){
  for(var i = 0 ; i < buttons.length ; i++){
   if( buttons[i].className == 'on' ){
   buttons[i].className = '';
   break;
   };
  };
  buttons[index - 1].className='on';
  };
  function play(){
  timer = setTimeout(function () {
          next.onclick();
          play();
        }, interval);
  };
  function stop(){
  clearTimeout(timer);
  };
  //向前按钮
  next.onclick = function () {
        if (animated) {
          return;
        }
        if (index == 5) {
          index = 1;
        }
        else {
          index += 1;
        }
        animate(-750);
        showButton();
      };
      prev.onclick = function () {
        if (animated) {
          return;
        }
        if (index == 1) {
          index = 5;
        }
        else {
          index -= 1;
        }
        animate(750);
        showButton();
      };
  //parseInt()转换为纯数值
  function animate(offset){
  animated = true;
  var newLeft = parseInt(list.style.left) + offset; //目标值
  var time = 300; //位移总时间为300
  var interval = 10; //
  var speed = offset/(Math.floor(time/interval)); //每次位移量
  function go(){
  if( (speed < 0 && parseInt(list.style.left) > newLeft) || ( speed > 0 && parseInt(list.style.left) < newLeft) ){
   list.style.left = parseInt(list.style.left) + speed + 'px';
    setTimeout(go,interval);
  }else{
   animated = false;
   list.style.left = newLeft+ 'px';  //现在的位移
   if( newLeft > -750){           //假的辅助图
   list.style.left = -3750 + 'px';
   }
   if( newLeft < -3750){
   list.style.left = -750 + 'px';
   }
  }
  };
  go();  
  };
  //小按钮
  for(var i=0;i < buttons.length;i++){
  buttons[i].onclick = function(){

  if(this.className == 'on'){
   return;
  };
   var myIndex = parseInt(this.getAttribute('index'));
   var offset = -750 * (myIndex - index);

   animate(offset);
          index = myIndex;
          showButton();
  }
  }
  lunBo.onmouseout = play;
  lunBo.onmouseover = stop;
  play();
 }
 </script>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# 原生js  # 焦点  # 轮播  # 原生js实现轮播图的示例代码  # 原生js实现无限循环轮播图效果  # 原生js实现移动开发轮播图、相册滑动特效  # 原生js实现无缝轮播图效果  # 原生js实现旋转木马轮播图效果  # 原生JS实现层叠轮播图  # 原生JS轮播图插件  # 原生JS京东轮播图代码  # 原生js实现网易轮播图效果  # 无限循环轮播图之运动框架(原生JS实现)  # 原生JS实现的轮播图功能详解  # 来了  # 也能  # 是从  # 要用  # 几点  # 时间为  # 或者说  # 时要  # 转换为  # 跳转到  # 往上升  # effect  # hsla  # relative  # padding  # position  # auto  # margin  # background  # box 


相关文章: php json中文编码为null的解决办法  黑客如何通过漏洞一步步攻陷网站服务器?  C++如何使用std::optional?(处理可选值)  如何选择靠谱的建站公司加盟品牌?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  深圳网站制作的公司有哪些,dido官方网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  电商平台网站制作流程,电商网站如何制作?  公众号网站制作网页,微信公众号怎么制作?  ,石家庄四十八中学官网?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  重庆市网站制作公司,重庆招聘网站哪个好?  如何在云虚拟主机上快速搭建个人网站?  如何快速重置建站主机并恢复默认配置?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  怎么将XML数据可视化 D3.js加载XML  如何获取PHP WAP自助建站系统源码?  如何在IIS7中新建站点?详细步骤解析  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  建站之星如何配置系统实现高效建站?  简历在线制作网站免费版,如何创建个人简历?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  公司网站的制作公司,企业网站制作基本流程有哪些?  网站图片在线制作软件,怎么在图片上做链接?  如何在阿里云部署织梦网站?  C#如何使用XPathNavigator高效查询XML  如何通过服务器快速搭建网站?完整步骤解析  TestNG的testng.xml配置文件怎么写  网站制作公司,橙子建站是合法的吗?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在建站宝盒中设置产品搜索功能?  建站之星代理如何获取技术支持?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站VPS选购需注意哪些关键参数?  ,如何利用word制作宣传手册?  如何在西部数码注册域名并快速搭建网站?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何在建站之星绑定自定义域名?  在线制作视频的网站有哪些,电脑如何制作视频短片?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何正确选择百度移动适配建站域名?  建站之星安装后如何配置SEO及设计样式?  广东企业建站网站优化与SEO营销核心策略指南  营销式网站制作方案,销售哪个网站招聘效果最好?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事? 

您的项目需求

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