HTML鼠标悬停图片置顶,jquery实现鼠标悬浮停止轮播特效
本文實例講述了jquery實現鼠標懸浮停止輪播特效代碼。分享給大家供大家參考,具體如下:
運行效果截圖如下:
具體代碼如下:
一、主體程序
輪播圖①(手動點擊輪播)1
2
3
4
二、CSS樣式
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
}
.slideShow{
width: 346px;
height: 210px; /*其實就是圖片的高度*/
border: 1px #eeeeee solid;
margin: 100px auto;
position: relative;
overflow: hidden; /*此處需要將溢出框架的圖片部分隱藏*/
}
.slideShow ul{
width: 2000px;
position: relative; /*此處需注意relative : 對象不可層疊,但將依據left,right,top,bottom等屬性在正常文檔流中偏移位置,如果沒有這個屬性,圖片將不可左右移動*/
}
.slideShow ul li{
float: left; /*讓四張圖片左浮動,形成并排的橫著布局,方便點擊按鈕時的左移動*/
width: 346px;
}
.slideShow .showNav{ /*用絕對定位給數字按鈕進行布局*/
position: absolute;
right: 10px;
bottom: 5px;
text-align:center;
font-size: 12px;
line-height: 20px;
}
.slideShow .showNav span{
cursor: pointer;
display: block;
float: left;
width: 20px;
height: 20px;
background: #ff5a28;
margin-left: 2px;
color: #fff;
}
.slideShow .showNav .active{
background: #b63e1a;
}
三、jQuery程序
先說一下鼠標懸浮圖片輪播停止的原理:
1、當鼠標懸浮在框架上方時,清除定時器即用clearInterval(timer)關閉定時器,使自動輪播停止
2、當鼠標離開框架上方時,重新啟動定時器
3、鼠標的懸浮和離開借助于hover函數
hover(over,out)一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法。這是一個自定義的方法,它為頻繁使用的任務提供了一種“保持在其中”的狀態。
參數:
over (Function) : 鼠標移到元素上要觸發的函數。
out (Function): 鼠標移出元素要觸發的函數。
下面來看jQuery程序:
$(document).ready(function(){
var slideShow=$(".slideShow"), //獲取最外層框架的名稱
ul=slideShow.find("ul"),
showNumber=slideShow.find(".showNav span"),//獲取按鈕
oneWidth=slideShow.find("ul li").eq(0).width(); //獲取每個圖片的寬度
var timer=null; //定時器返回值,主要用于關閉定時器
var iNow=0; //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0
/*手動點擊按鈕進行圖片輪播代碼開始*/
showNumber.on("click",function(){ //為每個按鈕綁定一個點擊事件
$(this).addClass("active").siblings().removeClass("active"); //按鈕點擊時為這個按鈕添加高亮狀態,并且將其他按鈕高亮狀態去掉
var index=$(this).index(); //獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值
iNow=index;
ul.animate({
"left":-oneWidth*iNow, //注意此處用到left屬性,所以ul的樣式里面需要設置position: relative; 讓ul左移N個圖片大小的寬度,N根據被點擊的按鈕索引值iNow確定
})
});
/*手動點擊按鈕進行圖片輪播代碼結束*/
/*定時自動輪播圖片代碼開始*/
timer=setInterval(function(){ //打開定時器
iNow++; //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片
if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始
iNow=0;
}
showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click
},2000); //2000為輪播的時間
/*定時自動輪播圖片代碼結束*/
/*鼠標懸浮圖片停止輪播代碼開始*/
slideShow.hover(
function(){
clearInterval(timer);
},function(){
timer=setInterval(function(){ //打開定時器
iNow++; //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片
if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始
iNow=0;
}
showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click
},2000); //2000為輪播的時間
}
);
/*鼠標懸浮圖片停止輪播代碼結束*/
})
從上圖可以看出開啟定時器的代碼是重復的,所以這里可以定義一個自動播放的函數autoPlay()來精簡代碼,經過精簡后的代碼如下:
/*定時自動輪播圖片代碼開始*/
function autoPlay(){
timer=setInterval(function(){ //打開定時器
iNow++; //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片
if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始
iNow=0;
}
showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click
},2000); //2000為輪播的時間
}
autoPlay();
/*定時自動輪播圖片代碼結束*/
定義完成后不要忘記調用這個函數,即autoPlay();
那么最終版的jQuery程序如下:
$(document).ready(function(){
var slideShow=$(".slideShow"), //獲取最外層框架的名稱
ul=slideShow.find("ul"),
showNumber=slideShow.find(".showNav span"),//獲取按鈕
oneWidth=slideShow.find("ul li").eq(0).width(); //獲取每個圖片的寬度
var timer=null; //定時器返回值,主要用于關閉定時器
var iNow=0; //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0
/*手動點擊按鈕進行圖片輪播代碼開始*/
showNumber.on("click",function(){ //為每個按鈕綁定一個點擊事件
$(this).addClass("active").siblings().removeClass("active"); //按鈕點擊時為這個按鈕添加高亮狀態,并且將其他按鈕高亮狀態去掉
var index=$(this).index(); //獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值
iNow=index;
ul.animate({
"left":-oneWidth*iNow, //注意此處用到left屬性,所以ul的樣式里面需要設置position: relative; 讓ul左移N個圖片大小的寬度,N根據被點擊的按鈕索引值iNow確定
})
});
/*手動點擊按鈕進行圖片輪播代碼結束*/
/*定時自動輪播圖片代碼開始*/
function autoPlay(){
timer=setInterval(function(){ //打開定時器
iNow++; //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片
if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始
iNow=0;
}
showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click
},2000); //2000為輪播的時間
}
autoPlay();
/*定時自動輪播圖片代碼結束*/
/*鼠標懸浮圖片停止輪播代碼開始*/
slideShow.hover(
function(){
clearInterval(timer);
},autoPlay
);
/*鼠標懸浮圖片停止輪播代碼結束*/
})
以上就是本文的全部內容,大家可以結合下面這兩篇文章進行學習:
希望本文所述對大家學習jQuery程序設計有所幫助。
總結
以上是生活随笔為你收集整理的HTML鼠标悬停图片置顶,jquery实现鼠标悬浮停止轮播特效的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html原生音频播放器倍速,HTML5倍
- 下一篇: html自动get,HTML Get