基于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图像处理—亮度对比度应用案例
Jan 03 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
jQuery实现菜单式图片滑动切换
Mar 14 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
js数字滑动时钟的简单实现(示例讲解)
Aug 14 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
轻松学习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 aes (ecb)解密后乱码问题
2015/06/22 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
jqueryMobile使用示例分享
2016/01/12 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
详解Python中的条件判断语句
2015/05/14 Python
Python缩进和冒号详解
2016/06/01 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
python文件写入write()的操作
2019/05/14 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
python 解决函数返回return的问题
2020/12/05 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
生产副总岗位职责
2013/11/28 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
六个一活动实施方案
2014/03/21 职场文书
工会趣味活动方案
2014/08/18 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
走群众路线剖析材料
2014/10/09 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
Ajax实现局部刷新的方法实例
2021/03/31 Javascript