全网整合营销服务商

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

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

js学习总结_轮播图之渐隐渐现版(实例讲解)

具体代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
      font-size:14px;
      -webkit-user-select:none;
    }
    ul,li{
      list-style
    }
    img{
      display: block;
      border:none;
    }
    .banner{
      position:relative;
      width:1000px;
      height:300px;
      margin:0 auto;
      overflow:hidden;
    }
    .banner .bannerInner{
      width:100%;
      height:100%;
      background:url("../img/default.gif") no-repeat center center #e1e1e1;
    }
    .banner .bannerInner div{
      position:absolute;
      width:100%;
      height:100%;
      top:0;
      left:0;
      z-index:0;
      opacity:0;
      filter:alpha(opacity=0);
    }
    .banner .bannerInner img{
      display:none;
      width:100%;
      height:100%s;
    }

    .banner .bannerTip{
      position:absolute;
      height:18px;
      overflow:hidden;
      right:20px;
      bottom:20px;
      z-index:10;
    }
    .banner .bannerTip li{
      float:left;
      margin-left:10px;
      width:18px;
      height:18px;
      background:lightblue;
      cursor:pointer;
      border-radius:50%;
    }
    .banner .bannerTip li.bg{
      background:red;
    }

    .banner a{
      display:none;
      position:absolute;
      top:50%;
      z-index:20;
      margin-top:-22.5px;
      width:30px;
      height:45px;
      background:url("../img/pre.png");
      opacity:0.5;
      filter:alpha(opacity=50);
    }
    .banner a:hover{
      opacity:1;
      filter:alpha(opacity=100);
    }
    .banner a.bannerLeft{
      left:20px;
      background-position:0 0;
    }
    .banner a.bannerRight{
      right:20px;
      background-position:-50px 0;
    }
  </style>
</head>
<body>
  <div class='banner' id='banner'>
    <div class='bannerInner'>
      <div><img src="" alt="" trueImg="img/banner1.jpg"></div>
      <div><img src="" alt="" trueImg="img/banner2.jpg"></div>
      <div><img src="" alt="" trueImg="img/banner3.jpg"></div>
      <div><img src="" alt="" trueImg="img/banner4.jpg"></div>
    </div>
    <ul class='bannerTip'>
      <li class='bg'></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
    <a href="javascript:;" rel="external nofollow" rel="external nofollow" class='bannerLeft'></a>
    <a href="javascript:;" rel="external nofollow" rel="external nofollow" class='bannerRight'></a>
  </div>

  <script>
    var banner = document.getElementById('banner');
    var bannerInner = utils.firstChild(banner),bannerTip = utils.children(banner,"ul")[0],bannerLink = utils.children(banner,'a'),bannerLeft = bannerLink[0],bannerRight = bannerLink[1];
    var divList = bannerInner.getElementsByTagName('div');
    var imgList = bannerInner.getElementsByTagName('img');
    var oLis = bannerTip.getElementsByTagName('li');
    //1、Ajax读取数据
    var jsonData = null;
    ~function(){
      var xhr = new XMLHttpRequest;
      xhr.open("get","json/banner.txt?_="+Math.random(),false);
      xhr.onreadystatechange = function(){
        if(xhr.readyState ===4 && /^2\d{2}$/.test(xhr.status)){
          jsonData = utils.formatJSON(xhr.responseText)
        }
      }
      xhr.send(null)
    }()
    //2、数据绑定
    ~function(){
      var str = "",str2 = "";
      if(jsonData){
        for(var i = 0,len=jsonData.length;i<len;i++){
          var curData = jsonData[i];
          str+='<div><img src="" alt="" trueImg="'+curData['img']+'"></div>';
          i===0?str2+="<li class='bg'></li>":str2+="<li></li>"
        }
      }
      bannerInner.innerHTMl = str;
      bannerTip.innerHTML = str2;
    }()

    //3、图片的延迟加载
    window.setTimeout(lazyImg,500)
    function lazyImg(){
      for(var i = 0,len = imgList.length;i<len;i++){
        ~function(i){
          var curImg = imgList[i];
          var oImg = new Image;
          oImg.src = curImg.getAttribute('trueImg');
          oImg.onload = function(){
            curImg.src = this.src;
            curImg.style.display = block;
            //只对第一张处理
            if(i===0){
              var curDiv = curImg.parentNode;
              curDiv.style.zIndex = 1;
              myAnimate(curDiv,{opacity:1},200);
            }
            oImg = null;
          }
        }(i)
      }
    }
    //4、自动轮播
    var interval = 3000,autoTimer = null,step = 0;
    autoTimer = window.setInterval(autoMove,interval);
    function autoMove(){
      //当已经把最后一张展示完成后(step等于最后一张的索引),我们应该展示第一张,我们让step = -1,这样再经过一次累加,step就变为0,来展示第一张
      if(step === jsonData.length-1){
        step = -1
      }
      step++;
      setBanner();
    }
    //实现轮播图切换效果的代码
    function setBanner(){
      //1、让step索引对应的那个DIV的zIndex的值为1,其他的zIndex为0 
      for(var i = 0,len = divList.length;i<len;i++){
        var curDiv = divList[i];
        if(i===step){
          utils.css(curDiv,"zIndex",1)
          //2、让当前的透明度从0变为1,当动画结束,我们需要让其他的div的透明度的值直接变为0
          myAnimate(curDiv,{opacity:1},200,function(){
            var curDivSib = utils.siblings(this);
            for(var k = 0,len = curDivSib.length;k<len;k++){
              utils.css(curDivSib[k],'opacity',0)
            }

          })
          continue
        }
        utils.css(curDiv,"zIndex",0)
      }
      //实现焦点对其
      for(i = 0,len = oLis.length;i<len;i++){
        var curLi = oLis[i];
        i === step?utils.addClass(curLi,"bg"):utils.removeClass(curLi,"bg");
      }

    }
    //5、实现鼠标悬停停止自动轮播和离开在开启自动轮播
    banner.onmouseover = function(){
      window.clearInterval(autoTimer);
      bannerLeft.style.display = bannerRight.style.display = "block"

    }
    banner.onmouseout = function(){
      autoTimer = window.setInterval(autoMove,interval);
      bannerLeft.style.display = bannerRight.style.display = "none"
    }
    //6、实现点击焦点切换
    ~function(){
      for(var i = 0,len = oLis.length;i<len;i++){
        var curLi = oLis[i];
        curLi.index = i;
        curLi.onclick = function(){
          step = this.index;
          setBanner();
        }
      }
    }()
    //7、实现左右切换
    bannerRight.onclick = autoMove;
    bannerLeft.onclick = function(){
      if(step === 0){
        step = jsonData.length;
      }
      step--;
      setBanner();
    }
  </script>
</body>
</html>

以上这篇js学习总结_轮播图之渐隐渐现版(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js  # 渐隐渐现  # 原生JS实现图片网格式渐显、渐隐效果  # 原生js和jquery实现图片轮播淡入淡出效果  # 原生JS实现图片轮播与淡入效果的简单实例  # js淡入淡出的图片轮播效果代码分享  # 原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)  # JS实现的简单轮播图运动效果示例  # 第一张  # 给大家  # 鼠标  # 其他的  # 对其  # 希望能  # 这篇  # 我们应该  # 只对  # 绑定  # 小编  # 让其  # 值为  # 大家多多  # 加载  # 完成后  # 渐隐  # 渐现  # opacity  # filter 


相关文章: 网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站之星安装失败:服务器环境不兼容?  常州企业建站如何选择最佳模板?  如何快速查询网址的建站时间与历史轨迹?  建站之星安装后界面空白如何解决?  建站主机是否属于云主机类型?  深入理解Android中的xmlns:tools属性  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  网站制作公司排行榜,四大门户网站排名?  如何设计高效校园网站?  建站之星各版本价格是多少?  黑客入侵网站服务器的常见手法有哪些?  网站企业制作流程,用什么语言做企业网站比较好?  建站之星如何助力网站排名飙升?揭秘高效技巧  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站之星如何保障用户数据免受黑客入侵?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  Java解压缩zip - 解压缩多个文件或文件夹实例  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  专业商城网站制作公司有哪些,pi商城官网是哪个?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  建站之星如何实现五合一智能建站与营销推广?  存储型VPS适合搭建中小型网站吗?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在万网主机上快速搭建网站?  c# 在高并发场景下,委托和接口调用的性能对比  已有域名和空间如何搭建网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过FTP服务器快速搭建网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  建站之星如何一键生成手机站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  贸易公司网站制作流程,出口贸易网站设计怎么做?  制作网站公司那家好,网络公司是做什么的?  网站制作难吗安全吗,做一个网站需要多久时间?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站之星代理费用多少?最新价格详情介绍  如何通过免费商城建站系统源码自定义网站主题与功能?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何通过服务器快速搭建网站?完整步骤解析  如何做静态网页,sublimetext3.0制作静态网页?  PHP 500报错的快速解决方法  家具网站制作软件,家具厂怎么跑业务?  ,交易猫的商品怎么发布到网站上去?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式) 

您的项目需求

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