Maison > interface Web > js tutoriel > Implémenter un effet de fondu d'entrée et de sortie de la carte de focus basé sur Jquery_jquery

Implémenter un effet de fondu d'entrée et de sortie de la carte de focus basé sur Jquery_jquery

WBOY
Libérer: 2016-05-16 15:28:35
original
1114 Les gens l'ont consulté

L'exemple de cet article décrit le code d'implémentation de l'effet de fondu sortant et de fondu entrant de la carte de focus basé sur Jquery. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

Ce conteneur utilise une largeur en pourcentage et l'image est toujours centrée. Une largeur fixe ou une largeur adaptative sont disponibles.

Compatible avec les navigateurs IE6 et supérieurs, deux paramètres peuvent être modifiés, la vitesse de fondu sortant et entrant et l'intervalle de commutation.

La capture d'écran de l'effet en cours d'exécution est la suivante :

Le code spécifique est le suivant :

Le code HTML est le suivant :

<!doctype html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <title>淡出淡入焦点图</title>
 <link href="css/style.css" rel="stylesheet"/>
 <script src="js/jquery-1.9.1.min.js"></script>
 <script src="js/common.js"></script>
</head>
<body>
 <div class="wrap">
  <div class="banner">
   <div class="bannerCon">
    <!-- 容器有做自适应宽度处理,下面的图片会保持居中显示,建议使用最大尺寸的图片填充 -->
    <ul class="imgList">
     <li><a href="#"><img src="images/banner01.jpg" alt=""/></a></li>
     <li><a href="#"><img src="images/banner02.jpg" alt=""/></a></li>
     <li><a href="#"><img src="images/banner03.jpg" alt=""/></a></li>
    </ul>
    <ul class="btnList clearfix">
     <li class="cur"><span></span></li>
     <li><span></span></li>
     <li><span></span></li>
    </ul>
    <span class="pre-nex prev"><</span> 
    <span class="pre-nex next">></span> 
   </div>
  </div>
 </div>
</body>
</html>
Copier après la connexion

Le style CSS est le suivant :

@charset "utf-8";
/* 简单reset */
body, p, ul, ol, li {
  margin: 0;
  padding: 0;
}
ul, ol {
  list-style: none;
}
img { border:none; }
a,button{ outline: none; }
.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
} 
/* 具体样式 */
.banner { height: 400px; }
.banner .bannerCon {
  position: relative;
  width: 60%;
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.bannerCon .imgList {
  width: 100%;
  height: 100%;
}
.bannerCon .imgList li {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #e2f6fd; /* 这个背景是为了展示宽度大于图片宽度时的区域,可以删除 */
  z-index: 1;
}
.bannerCon .imgList li a {
  display: block;
  height: 100%;
  text-align: center;
}
.imgList li a img {
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -400px; /* 这个数值填图片的实际宽度的一半 */
}
.bannerCon .pre-nex {
  display: none;
  position: absolute;
  top: 50%;
  width: 40px;
  height: 60px;
  margin-top: -40px;
  font: bold 40px/60px Simsun;
  color: #ccc;
  text-align: center;
  border:none;
  background: rgba(0,0,0,.30);
  filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#4c000000, endColorStr=#4c000000);
  cursor: pointer;
  z-index: 3;
}
.bannerCon .pre-nex.show { display: inline-block; }
.bannerCon .prev { left: 13%; }
.bannerCon .next { right: 13%; }
.bannerCon .btnList {
  position: absolute;
  left: 0;
  bottom: 20px;
  width: 100%;
  height: 12px;
  text-align:center;
  z-index: 6;
  _overflow: hidden;
}
.bannerCon .btnList li { display: inline; }
.bannerCon .btnList li span {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 6px;
  background-color:#14829e;
  cursor: pointer;
}
.bannerCon .btnList li.cur span { background-color: #f30; }
Copier après la connexion

Le code Js est le suivant :

//加载在文本读取之后的js语句 开始 =============================================================
  function fadeImg(obj,speed,interval){  //父级容器,淡出淡入速度,切换间隔
    $("."+obj).each(function(){
      var $box = $(this),
        $imgUl = $box.children(".imgList"),
        $imgLi = $imgUl.children("li"),
        $btnUl = $box.children(".btnList"),
        $btnLi = $btnUl.children("li"),
        $btnPreNex = $box.children(".pre-nex"),
        n = $imgLi.length,
        k = 0,
        Player = setInterval(function(){fade()},interval);
      $imgLi.eq(0).fadeIn(speed);             //第一张先淡入
      function fade(){                  //淡出淡入事件
        k += 1;
        if(k >= n){
          k = 0;
        }
        $btnLi.removeClass('cur').eq(k).addClass('cur');
        $imgLi.fadeOut(speed).eq(k).fadeIn(speed);  
      };
      $btnLi.click(function(){              //小圆点点击事件
        var index = $btnLi.index(this);
        $(this).addClass('cur').siblings('li').removeClass('cur');
        $imgLi.fadeOut(speed).eq(index).fadeIn(speed);
        k = index;
      });     
      $btnPreNex.click(function(){            //左右按钮点击事件              
        if(!$imgLi.is(":animated")){
          if($(this).hasClass('next')){
            k += 1;
            if(k >= n){
              k = 0;
            }
          }
          else{
            k += -1;
            if(k < 0){
              k = n-1;
            }
          }
          $btnLi.removeClass('cur').eq(k).addClass('cur');
          $imgLi.fadeOut(speed).eq(k).fadeIn(speed);
        }  
      });   
      $box.hover(                      //鼠标移入事件(不用toggle是为了兼容1.9+的JQ库)  
        function(){
          clearInterval(Player);
          $btnPreNex.addClass('show');
        },
        function(){
          Player = setInterval(function(){fade()},interval);
          $btnPreNex.removeClass('show');
        }
      );        
    });
  }  
  $(function () {              //读取轮播事件
    fadeImg("bannerCon",1000,3000);
  });  
Copier après la connexion

Il n'y a pas de problème si vous utilisez la bibliothèque jq 1.7. J'espère que cela sera utile à l'étude de tout le monde. Si vous pensez que c'est bien, veuillez lui donner un coup de pouce silencieux.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal