基于Jquery实现焦点图淡出淡入效果


Posted in Javascript onNovember 30, 2015

本文实例讲述了基于Jquery实现焦点图淡出淡入效果代码。分享给大家供大家参考。具体如下:

这个容器用了百分比宽度,图片始终保持居中处理,定宽或者自适应宽度都是可以的。

兼容到IE6+以上浏览器,有淡出淡入速度和切换间隔两个参数可以改。

运行效果截图如下:

基于Jquery实现焦点图淡出淡入效果

具体代码如下:

Html代码如下:

<!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样式如下:

@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代码如下:

//加载在文本读取之后的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);
  });

jq库用1.7+的都是没有问题的,希望对大家的学习有所帮助,感觉不错的同学就默默的点个赞吧。

Javascript 相关文章推荐
JavaScript EasyPager 分页函数
May 25 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
javascript中sort() 方法使用详解
Aug 30 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
基于js中的原型、继承的一些想法
Aug 10 Javascript
vue实现登录后页面跳转到之前页面
Jan 07 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
May 27 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
Nov 30 #Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
Nov 30 #Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 #Javascript
You might like
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
php新建文件的方法实例
2019/09/26 PHP
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
js实现图片360度旋转
2017/01/22 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python发展史及网络爬虫
2019/06/19 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
syb养殖创业计划书
2014/01/09 职场文书
工作表扬信的范文
2014/01/10 职场文书
学习十八大报告感言
2014/02/04 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书