jQuery实现的自适应焦点图效果完整实例


Posted in Javascript onAugust 24, 2016

本文实例讲述了jQuery实现的自适应焦点图效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

jQuery实现的自适应焦点图效果完整实例

具体代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
<title>焦点图</title>
<style>
* {
  padding: 0;
  margin: 0;
}
img {
  vertical-align: top;
  border: 0;
}
li {
  list-style: none;
}
#focus-banner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
#focus-banner-list {
  position: relative;
}
#focus-banner-list li {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}
#focus-banner-list li img {
  width: 100%;
}
.focus-banner-img {
  display: block;
}
#focus-banner-list .focus-banner-text {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1000px;
  height: 100%;
  margin-left: -500px;
  text-align: center;
  color: #fff;
  font-size: 16px;
  text-align: center;
}
#focus-banner .focus-handle {
  position: absolute;
  top: 50%;
  margin-top: -40px;
  z-index: 100;
  display: block;
  width: 80px;
  height: 80px;
  background-image:url(images/focus_handle.png);
}
#next-img {
  left: 0;
}
#next-img {
  left: 50px;
  background-position: 0 0;
}
#next-img:hover {
  background-position: 0 -80px;
}
#prev-img {
  right: 0;
}
#prev-img {
  right: 50px;
  background-position: -80px 0;
}
#prev-img:hover {
  background-position: -80px -80px;
}
#focus-bubble {
  position: absolute;
  left: 50%;
  bottom: 10px;
  z-index: 999;
}
#focus-bubble li {
  float: left;
  width: 10px;
  height: 10px;
  margin: 0 5px;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -o-border-radius: 50%;
  -ms-border-radius: 50%;
  border: 1px #fff solid;
  cursor: pointer;
}
#focus-bubble li.current {
  background-color: #fff;
}
</style>
</head>
<body>
<div id="focus-banner">
  <ul id="focus-banner-list">
    <li>
      <a href="#" class="focus-banner-img">
        <img src="images/banner2.jpg" alt="">
      </a>
      <div class="focus-banner-text">
        <p>这是一句广告语</p>
      </div>
    </li>
    <li>
      <a href="#" class="focus-banner-img">
        <img src="images/banner3.jpg" alt="">
      </a>
      <div class="focus-banner-text">
        <p>这是二句广告语</p>
      </div>
    </li>
    <li>
      <a href="#" class="focus-banner-img">
        <img src="images/banner4.jpg" alt="">
      </a>
      <div class="focus-banner-text">
        <p>这是三句广告语</p>
      </div>
    </li>
    <li>
      <a href="#" class="focus-banner-img">
        <img src="images/banner5.jpg" alt="">
      </a>
      <div class="focus-banner-text">
        <p>这是四句广告语</p>
      </div>
    </li>
  </ul>
  <a href="javascript:;" id="next-img" class="focus-handle"></a>
  <a href="javascript:;" id="prev-img" class="focus-handle"></a>
  <ul id="focus-bubble"></ul>
</div>
<script src="js/jquery-1.10.1.min.js"></script>
<script>
$(function(){
  var focusBanner=function(){
    var $focusBanner=$("#focus-banner"),
      $bannerList=$("#focus-banner-list li"),
      $focusHandle=$(".focus-handle"),
      $bannerImg=$(".focus-banner-img"),
      $nextBnt=$("#next-img"),
      $prevBnt=$("#prev-img"),
      $focusBubble=$("#focus-bubble"),
      bannerLength=$bannerList.length,
      _index=0,
      _timer="";
    var _height=$(".focus-banner-img").find("img").height();
    $focusBanner.height(_height);
    $bannerImg.height(_height);
    $(window).resize(function(){
      window.location.reload()
    });
    for(var i=0; i<bannerLength; i++){
      $bannerList.eq(i).css("zIndex",bannerLength-i);
      $focusBubble.append("<li></li>");
    }
    $focusBubble.find("li").eq(0).addClass("current");
    var bubbleLength=$focusBubble.find("li").length;
    $focusBubble.css({
      "width":bubbleLength*22,
      "marginLeft":-bubbleLength*11
    });//初始化
    $focusBubble.on("click","li",function(){
      $(this).addClass("current").siblings().removeClass("current");
      _index=$(this).index();
      changeImg(_index);
    });//点击轮换
    $nextBnt.on("click",function(){
      _index++
      if(_index>bannerLength-1){
        _index=0;
      }
      changeImg(_index);
    });//下一张
    $prevBnt.on("click",function(){
      _index--
      if(_index<0){
        _index=bannerLength-1;
      }
      changeImg(_index);
    });//上一张
    function changeImg(_index){
      $bannerList.eq(_index).fadeIn(250);
      $bannerList.eq(_index).siblings().fadeOut(200);
      $focusBubble.find("li").removeClass("current");
      $focusBubble.find("li").eq(_index).addClass("current");
      clearInterval(_timer);
      _timer=setInterval(function(){$nextBnt.click()},5000)
    }//切换主函数
    _timer=setInterval(function(){$nextBnt.click()},5000)
  }();
})
</script>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JS日历 推荐
Dec 03 Javascript
javascript 事件查询综合 推荐收藏
Mar 10 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
Javascript中的对象和原型(二)
Aug 12 Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
详解使用React.memo()来优化函数组件的性能
Mar 19 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 Javascript
jQuery中event.target和this的区别详解
Aug 13 jQuery
JS class语法糖的深入剖析
Jul 07 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 #Javascript
JS for...in 遍历语句用法实例分析
Aug 24 #Javascript
用JS中split方法实现彩色文字背景效果实例
Aug 24 #Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 #Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 #Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 #Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 #Javascript
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
python2 与python3的print区别小结
2018/01/16 Python
Python模块的加载讲解
2019/01/15 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
商务日语专业的自荐信
2014/05/23 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
办公室主任岗位职责
2015/01/31 职场文书
汽车车尾标语大全
2015/08/11 职场文书
《鲸》教学反思
2016/02/23 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis