这篇文章主要介绍了jQuery实现的自适应焦点图效果,结合完整实例形式分析了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相关内容感兴趣的读者可查看本站专题:《jQuery切换特效与技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。 |