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 相关文章推荐
在Javascript中定义对象类别
Dec 22 Javascript
JQuery触发事件例如click
Sep 11 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
Jun 18 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
javascript使用闭包模拟对象的私有属性和方法
Oct 05 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
Feb 10 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
使用Javascript简单计算器
Nov 17 Javascript
微信小程序利用for循环解决内容变更问题
Mar 05 Javascript
Vue 数据响应式相关总结
Jan 28 Vue.js
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
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
python实现查询IP地址所在地
2015/03/29 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
快速了解python leveldb
2018/01/18 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
Python中过滤字符串列表的方法
2020/12/22 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
女子职高个人自荐书
2014/02/01 职场文书
内勤主管岗位职责
2014/04/03 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
中秋节活动总结
2014/08/29 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
财务部岗位职责范本
2015/04/14 职场文书
企业法人任命书
2015/09/21 职场文书
python blinker 信号库
2022/05/04 Python