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 相关文章推荐
MSN消息提示类
Sep 05 Javascript
Javascript的一种模块模式
Mar 22 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
功能强大的Bootstrap效果展示(二)
Aug 03 Javascript
原生js封装的一些jquery方法(详解)
Sep 20 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
Vue源码分析之Vue实例初始化详解
Aug 25 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
JavaScript类的继承多种实现方法
May 30 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
example2.php
2006/10/09 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
JScript实现表格的简单操作
2017/08/15 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
js对象简介与基本用法示例
2020/03/13 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
python算法学习之计数排序实例
2013/12/18 Python
简单实现python聊天程序
2018/04/01 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
18岁生日感言
2014/01/12 职场文书
银行办公室岗位职责
2014/03/10 职场文书
教师个人自我评价范文
2014/04/13 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
Go使用协程交替打印字符
2021/04/29 Golang