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 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
Mar 05 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
二叉树先序遍历的非递归算法具体实现
Jan 09 Javascript
javascript 拷贝节点cloneNode()使用介绍
Apr 03 Javascript
JavaScript中使用Object.create()创建对象介绍
Dec 30 Javascript
jQuery中复合属性选择器用法实例
Dec 31 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
在javascript中使用com组件的简单实现方法
Aug 17 Javascript
vue中使用cropperjs的方法
Mar 01 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
Vuex的各个模块封装的实现
Jun 05 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
通过html表格发电子邮件
2006/10/09 PHP
杏林同学录(八)
2006/10/09 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
php实例化一个类的具体方法
2019/09/19 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
tensorflow 自定义损失函数示例代码
2020/02/05 Python
在python中修改.properties文件的操作
2020/04/08 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
在校生党员自我评价
2013/09/25 职场文书
毕业生多媒体设计求职信
2013/10/12 职场文书
高中考试作弊检讨书
2014/01/14 职场文书
工伤赔偿协议书
2014/04/15 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
刑事上诉状范文
2015/05/22 职场文书
小学感恩主题班会
2015/08/12 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏