该图片轮播对 JS图片切换[左右切换][带使用说明] 进行了升级,加上了标题动画,同样使用jQuery库,一个页面可以放置多个图片轮播。
先看一下演示:JS图片轮播[左右轮播][带使用说明]
HTML代码
- <div class="imageRotation">
- <div class="imageBox">
- <a href="http://www.itxueyuan.org" target="_blank"><img src="images/1.jpg" /></a>
- <a href="http://www.itxueyuan.org" target="_blank"><img src="images/2.jpg" /></a>
- <a href="http://www.itxueyuan.org" target="_blank"><img src="images/3.jpg" /></a>
- <a href="http://www.itxueyuan.org" target="_blank"><img src="images/4.jpg" /></a>
- <a href="http://www.itxueyuan.org" target="_blank"><img src="images/5.jpg" /></a>
- </div>
- <div class="titleBox">
- <p class="active"><span>第一张图片标题</span></p>
- <p>第二张图片标题</p>
- <p>第三张图片标</p>
- <p>第四张图片标题</p>
- <p>第五张图片标题</p>
- </div>
- <div class="icoBox">
- <span class="active" rel="1">1</span>
- <span rel="2">2</span>
- <span rel="3">3</span>
- <span rel="4">4</span>
- <span rel="5">5</span>
- </div>
- </div>
说明:每个图片轮播都必须放在 class="imageRotation" 的容器中,所有图片放在 class="imageBox" 的容器中,标题放在 class="titleBox" 的容器中,图标放在 class="icoBox" 的容器中。图片、标题和图标的数目要相等。
CSS代码
- .imageRotation{
- height:270px;
- 570px;
- overflow:hidden; /*--超出容器的所有元素都不可见--*/
- position:relative; /*--相对定位--*/
- border:10px solid #eee;
- bodrer-radius:5px;
- -webkit-border-radius:5px;
- -moz-border-radius:5px;
- }
- /*-------------图片容器---------------*/
- .imageBox{
- position:absolute; /*--固定定位--*/
- height:270px;
- top:0px;
- left:0px;
- overflow:hidden;
- }
- .imageBox img {
- display:block;
- height:270px;
- 570px;
- float:left;
- border:none;
- }
- /*-------------标题容器---------------*/
- .titleBox{
- position:absolute; /*--固定定位--*/
- bottom:0px;
- 570px;
- height:40px;
- overflow:hidden;
- }
- .titleBox p{
- position:absolute; /*--固定定位--*/
- bottom:-40px;
- 550px;
- height:40px;
- margin:0px;
- padding:0px 10px;
- line-height:40px;
- z-index:1;
- ">#000;
- color:#fff;
- font-family:"微软雅黑","yahei";
- opacity:0.5;
- -moz-opacity:0.5;
- -webkit-opacity:0.5;
- filter:alpha(opacity=50);
- }
- .titleBox p span{
- opacity:1;
- -moz-opacity:1;
- -webkit-opacity:1;
- filter:alpha(opacity=100);
- }
- .titleBox p.active{
- bottom:0px;
- }
- /*-------------图标容器---------------*/
- .icoBox{
- position:absolute; /*--固定定位--*/
- bottom:14px;
- right:15px;
- 76px;
- height:12px;
- text-align:center;
- line-height:40px;
- z-index:2;
- }
- .icoBox span{
- display:block;
- float:left;
- height:12px;
- 12px;
- margin-left:3px;
- overflow:hidden;
- background:url("images/ico.png") 0px 0px no-repeat;
- cursor:pointer;
- }
- .icoBox span.active {
- background-position:0px -12px;
- cursor:default;
- }
说明:相对定位和绝对定位要引起注意。
JavaScript代码
- $(document).ready(function() {
- $(".imageRotation").each(function(){
- // 获取有关参数
- var imageRotation = this, // 图片轮换容器
- imageBox = $(imageRotation).children(".imageBox")[0], // 图片容器
- titleBox = $(imageRotation).children(".titleBox")[0], // 标题容器
- titleArr = $(titleBox).children(), // 所有标题(数组)
- icoBox = $(imageRotation).children(".icoBox")[0], // 图标容器
- icoArr = $(icoBox).children(), // 所有图标(数组)
- imageWidth = $(imageRotation).width(), // 图片宽度
- imageNum = $(imageBox).children().size(), // 图片数量
- imageReelWidth = imageWidth*imageNum, // 图片容器宽度
- activeID = parseInt($($(icoBox).children(".active")[0]).attr("rel")), // 当前图片ID
- nextID = 0, // 下张图片ID
- setIntervalID, // setInterval() 函数ID
- intervalTime = 4000, // 间隔时间
- imageSpeed =500, // 图片动画执行速度
- titleSpeed =250; // 标题动画执行速度
- // 设置 图片容器 的宽度
- $(imageBox).css({'width' : imageReelWidth + "px"});
- // 图片轮换函数
- var rotate=function(clickID){
- if(clickID){ nextID = clickID; }
- else{ nextID=activeID<=3 ? activeID+1 : 1; }
- // 交换图标
- $(icoArr[activeID-1]).removeClass("active");
- $(icoArr[nextID-1]).addClass("active");
- // 交换标题
- $(titleArr[activeID-1]).animate(
- {bottom:"-40px"},
- titleSpeed,
- function(){
- $(titleArr[nextID-1]).animate({bottom:"0px"} , titleSpeed);
- }
- );
- // 交换图片
- $(imageBox).animate({left:"-"+(nextID-1)*imageWidth+"px"} , imageSpeed);
- // 交换IP
- activeID = nextID;
- }
- setIntervalID=setInterval(rotate,intervalTime);
- $(imageBox).hover(
- function(){ clearInterval(setIntervalID); },
- function(){ setIntervalID=setInterval(rotate,intervalTime); }
- );
- $(icoArr).click(function(){
- clearInterval(setIntervalID);
- var clickID = parseInt($(this).attr("rel"));
- rotate(clickID);
- setIntervalID=setInterval(rotate,intervalTime);
- });
- });
- });
以下三个配置可以更改:
- intervalTime = 4000, // 间隔时间
- imageSpeed =500, // 图片动画执行速度
- titleSpeed =250; // 标题动画执行速度