可以透過輸入程式碼來操作。
這裡的圖片輪播方法是我從網上參考的方法,只是自己做了一些改進,先來貼一發程式碼:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="./js/test2.js"></script>
</head>
<body>
<div>
<header>
<ul>
<li><img src="./img/s1.jpg"></li>
<li><img src="./img/s2.jpg"></li>
<li><img src="./img/s3.jpg"></li>
</ul>
</div>
</header>
</body>
</html>
在這個html的目錄下有三個同級的資料夾,img中放圖片,css和js分別存放這個網頁的css檔案和js檔案,這裡用到了jquery,記得引入順序,jquery一定要放在其他js前面。html程式碼很簡單,不做過多解釋。
看一下引入的css,init2.css
*{
margin: 0px ;
padding: 0px ;
}
#layout{
width: 960px ;
margin: 0 auto ;
#banner{
position: relative;
overflow: hidden;
width: 600px;
height: 200px;
border-radius: 10px ;
border: 2px solid black;
#banner_img li{
float: left;
list-style-type: none;
#index{
position: absolute;
right: 8px ;
bottom: 8px ;
#index li{
width: 16px ;
height: 16px ;
text-align: center;
line-height: 16px ;
border-radius: 5px ;
border:1px solid #FF7300 ;
background: white;
list-style: none;
margin-left: 8px ;
cursor: pointer;
.clearfix:after{
content: "" ;
height: 0px ;
display: block;
clear:both ;
.on
{
background:#FF7300 ;
css基本上和前面的html中的類對應,claerfix來清除浮動,on是代表輪播圖片的索引中當前的正播放的圖片的索引,其實就改個背景,這裡的索引是後面動態加上去的,索引在html中看不到。主要思路就是把裝圖片的容器設定成overfl;hidden;下面是一種比較簡單的實現,利用jquery的fadeIn和fadeOut效果來實現。
//fadeIn and fadeOut
var time ;
var index = 1 ;
var tolnum = 3 ;
$(function(){
<span> </span>setInterval("showBanner("+tolnum+")",3000);
});
function showBanner(n)
<span> </span>var ul = $("#banner_img") ;
<span> </span>ul.children().fadeOut("slow") ;
<span> </span>ul.children().eq(index).fadeIn("slow") ;
<span> </span>index = index+1>n-1 ? 0 : index+1 ;
恩,不知道為什麼到最後一張圖片的時候會產生沒有淡出的bug,不太懂,請大家指教。第二種方法是利用jquery的animation來實現margin屬性的過渡。
init();
function init()
var index = 0 ;
var adTime ;
var len = $("#banner_img li").length ;
addIndex(len) ;
var bannerLi = $("#index li");
//handle index
$("#index li").mouseover(function() {
index = $("#index li").index(this) ;
showImgs(index) ;
//toggleInterval
$("#banner").hover(function(){
clearInterval(adTimer);
},function(){
adTimer=setInterval(function(){
//alert(index) ;
showImgs(index);
index++;
if(index==len){
index=0;
},2000)
}).trigger("mouseleave");
//auto add index
function addIndex(n)
var ul = $("<ul id=\"index\"></ul>") ;
for(var i=1;i<=n;i++)
var li = $("<li></li>") ;
li.append(function(num){
return num
}(i)) ;
ul.append(li) ;
ul.children().first().addClass("on") ;
$("#banner_img").append(ul);
function showImgs(index)
var adwidth=$("#banner_img>li:first").width();
$("#banner_img").stop(true, false) ;
//$("#banner_img").css("margin-left", -index*adwidth+"px");
$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
$("#index li").removeClass("on").eq(index).addClass("on") ;
hover()是一種代替mouseenter和mouseleave的方法,聽說比較好用。trigger()來觸發當前物件的一個狀態,這裡要先觸發一次mouseleave的狀態來初始化計時器,因為這裡的設定是當滑鼠移到$("#banner")上就銷燬定時器,鎖定當前圖片,移開滑鼠就重新新增定時器。<pre name="code"> $("#banner_img").animate({
這了就是對jquery中animation方法的使用,透過傳進來的index來改變banner_img的margin,這裡是margin-left,所以圖片就會從右往左刷(需要設定浮動),如果需要從下往上刷就設定margin-top就好了,還有我發現js中動態新增margin是不能觸發css的transition的。
可以透過輸入程式碼來操作。
這裡的圖片輪播方法是我從網上參考的方法,只是自己做了一些改進,先來貼一發程式碼:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="./js/test2.js"></script>
</head>
<body>
<div>
<header>
<div>
<ul>
<li><img src="./img/s1.jpg"></li>
<li><img src="./img/s2.jpg"></li>
<li><img src="./img/s3.jpg"></li>
</ul>
</div>
</header>
</div>
</body>
</html>
在這個html的目錄下有三個同級的資料夾,img中放圖片,css和js分別存放這個網頁的css檔案和js檔案,這裡用到了jquery,記得引入順序,jquery一定要放在其他js前面。html程式碼很簡單,不做過多解釋。
看一下引入的css,init2.css
*{
margin: 0px ;
padding: 0px ;
}
#layout{
width: 960px ;
margin: 0 auto ;
}
#banner{
position: relative;
overflow: hidden;
width: 600px;
height: 200px;
border-radius: 10px ;
border: 2px solid black;
}
#banner_img li{
float: left;
list-style-type: none;
}
#index{
position: absolute;
right: 8px ;
bottom: 8px ;
}
#index li{
float: left;
width: 16px ;
height: 16px ;
text-align: center;
line-height: 16px ;
border-radius: 5px ;
border:1px solid #FF7300 ;
background: white;
list-style: none;
margin-left: 8px ;
cursor: pointer;
}
.clearfix:after{
content: "" ;
height: 0px ;
display: block;
clear:both ;
}
.on
{
background:#FF7300 ;
}
css基本上和前面的html中的類對應,claerfix來清除浮動,on是代表輪播圖片的索引中當前的正播放的圖片的索引,其實就改個背景,這裡的索引是後面動態加上去的,索引在html中看不到。主要思路就是把裝圖片的容器設定成overfl;hidden;下面是一種比較簡單的實現,利用jquery的fadeIn和fadeOut效果來實現。
//fadeIn and fadeOut
var time ;
var index = 1 ;
var tolnum = 3 ;
$(function(){
<span> </span>setInterval("showBanner("+tolnum+")",3000);
});
function showBanner(n)
{
<span> </span>var ul = $("#banner_img") ;
<span> </span>ul.children().fadeOut("slow") ;
<span> </span>ul.children().eq(index).fadeIn("slow") ;
<span> </span>index = index+1>n-1 ? 0 : index+1 ;
}
恩,不知道為什麼到最後一張圖片的時候會產生沒有淡出的bug,不太懂,請大家指教。第二種方法是利用jquery的animation來實現margin屬性的過渡。
init();
function init()
{
$(function(){
var index = 0 ;
var adTime ;
var len = $("#banner_img li").length ;
addIndex(len) ;
var bannerLi = $("#index li");
//handle index
$("#index li").mouseover(function() {
index = $("#index li").index(this) ;
showImgs(index) ;
});
//toggleInterval
$("#banner").hover(function(){
clearInterval(adTimer);
},function(){
adTimer=setInterval(function(){
//alert(index) ;
showImgs(index);
index++;
if(index==len){
index=0;
}
},2000)
}).trigger("mouseleave");
});
}
//auto add index
function addIndex(n)
{
var ul = $("<ul id=\"index\"></ul>") ;
for(var i=1;i<=n;i++)
{
var li = $("<li></li>") ;
li.append(function(num){
return num
}(i)) ;
ul.append(li) ;
}
ul.children().first().addClass("on") ;
$("#banner_img").append(ul);
}
function showImgs(index)
{
var adwidth=$("#banner_img>li:first").width();
$("#banner_img").stop(true, false) ;
//$("#banner_img").css("margin-left", -index*adwidth+"px");
$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
$("#index li").removeClass("on").eq(index).addClass("on") ;
}
hover()是一種代替mouseenter和mouseleave的方法,聽說比較好用。trigger()來觸發當前物件的一個狀態,這裡要先觸發一次mouseleave的狀態來初始化計時器,因為這裡的設定是當滑鼠移到$("#banner")上就銷燬定時器,鎖定當前圖片,移開滑鼠就重新新增定時器。<pre name="code"> $("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
這了就是對jquery中animation方法的使用,透過傳進來的index來改變banner_img的margin,這裡是margin-left,所以圖片就會從右往左刷(需要設定浮動),如果需要從下往上刷就設定margin-top就好了,還有我發現js中動態新增margin是不能觸發css的transition的。