Home > Article > Web Front-end > Implement focus map fade-in and fade-out effect based on Jquery_jquery
The example in this article describes the code for implementing the focus map fade-out and fade-in effect based on Jquery. Share it with everyone for your reference. The details are as follows:
This container uses a percentage width, and the image is always centered. Fixed width or adaptive width are available.
Compatible with IE6 and above browsers, there are two parameters that can be changed, the fade-out and fade-in speed and the switching interval.
The screenshot of the running effect is as follows:
The specific code is as follows:
Html code is as follows:
<!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>
Css style is as follows:
@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; }
Js code is as follows:
//加载在文本读取之后的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); });
There is no problem if you use jq library 1.7. I hope it will be helpful to everyone’s study. If you think it is good, please give it a silent thumbs up.