基于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 call方法使用说明
Jan 11 Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
判断JS对象是否拥有某种属性的两种方式
Dec 02 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
jQuery获取radio选中项的值实例
Jun 18 Javascript
JavaScript中的await/async的作用和用法
Oct 31 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
微信小程序之MaterialDesign--input组件详解
Feb 15 Javascript
element form 校验数组每一项实例代码
Oct 10 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代码收集表单内容并写入文件的代码
2012/01/29 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
Javascript typeof 用法
2008/12/28 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python实现中文输出的两种方法
2015/05/09 Python
python常见的格式化输出小结
2016/12/15 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
班主任寄语大全
2014/04/04 职场文书
安全员岗位职责
2015/02/10 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
python实现简单的三子棋游戏
2022/04/28 Python