CSS+jQuery/JavaScript图片切换播放

主要用到的是CSS样式控制和简单的Jquery逻辑控制。

CSS:使得图片播放框的大小适合并固定,同时实现溢出隐藏,这样就可以使尚没应该播放的图片得以隐藏;另外,它还自定义手动切换按钮的效果。

Jquery:根据逻辑和设置的时间,循环移除/添加控件里面的样式class,实现图片的隐与显。

总之一句,核心原理是对图片相对位置的控制。

下面是最基本和简陋Demo。完全可以再拓展,用到函数方法的封装,OOP之类的。

页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="../script/jquery-1.7.1.js" type="text/javascript"></script>
<script src="../script/keyImg.js" type="text/javascript"></script>
<style type="text/css">
.img_play
{


}
.img_play_left
{
position
:relative;
overflow
:hidden;
background-color
:Silver;
}
.img_play_left img, .img_play_left
{
float
:left;
width
:700px;
height
:400px;
}

.img_play_left img
{
position
:absolute;
left
:700px;
}
.img_play_left .img_play_left_current
{
left
:0px;
}
.img_play_left_btn_panel
{
width
:100%;
clear
:left;
}
.btn
{
cursor
:pointer;
float
:left;
margin
:2px;
}
.img_play_left_btn_current
{
background-color
:#fe4020;
}
.img_play_left_btn_box
{
width
:20px;
height
:20px;
float
:left;
text-align
:center;
}
</style>
</head>
<body>
<div>
<div class="img_play">
<div class="img_play_left">
<img src="../images/1.jpg" alt="img0" id="img0" class="img_play_left_current" />
<img src="../images/2.jpg" alt="img1" id="img1" />
<img src="../images/3.jpg" alt="img2" id="img2" />
</div>

<div class="img_play_left_btn_panel">
<div class="btn img_play_left_btn img_play_left_btn_current" id="img_play_left_btn_0">
<div class="btn img_play_left_btn_box">1</div>
</div>
<div class="btn img_play_left_btn" id="img_play_left_btn_1">
<div class="btn img_play_left_btn_box">2</div>
</div>
<div class="btn img_play_left_btn" id="img_play_left_btn_2">
<div class="btn img_play_left_btn_box">3</div>
</div>
</div>
</div>
</div>
</body>
</html>



关键的JS代码来了:

$(document).ready(function () {
//start
var currentImgIndex = 0;
var nextImgIndex = 1;
var moveImgAuto = true;

jQuery('.img_play_left_btn').click(function () {
var tmp = parseInt(this.id.split('_')[4]);
if (tmp == currentImgIndex)
return;

nextImgIndex = tmp;
moveImgAuto = false;
moveImg();
});

setInterval(moveImg, 3000);

function moveImg()
{
var $currentImg=jQuery('#img'+currentImgIndex);
var $nextImg=jQuery('#img'+nextImgIndex);
var $currentBtn=jQuery('#img_play_left_btn_'+currentImgIndex);
var $nextBtn=jQuery('#img_play_left_btn_'+nextImgIndex);

if (nextImgIndex>currentImgIndex || moveImgAuto)
{
$nextImg.css('left', 700).animate({left:0}, 500);
$currentImg.animate({left:-700}, 500);
$currentBtn.removeClass('img_play_left_btn_current');
}
else
{
$nextImg.css('left', -700).animate({left:0}, 500);
$currentImg.animate({left:700}, 500);
}
$currentBtn.removeClass('img_play_left_btn_current');
$nextBtn.addClass('img_play_left_btn_current');

currentImgIndex=nextImgIndex;
nextImgIndex=(currentImgIndex+1)%3;
moveImgAuto=true;
}


//over
});



效果图很简陋,需要的可以在页面代码的CSS样式中重新自定义。



原文地址:https://www.cnblogs.com/oneivan/p/2284785.html