国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jquery實現鼠標懸浮停止輪播特效

2024-05-06 16:26:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jquery實現鼠標懸浮停止輪播特效,鼠標懸停在圖片上則停止輪播,感興趣的小伙伴們可以參考一下
 

本文實例講述了jquery實現鼠標懸浮停止輪播特效代碼。分享給大家供大家參考。具體如下:
運行效果截圖如下:

jquery實現鼠標懸浮停止輪播特效

具體代碼如下:

一、主體程序

<!DOCTYPE html><html>  <head>    <meta charset="utf-8" />    <title>輪播圖①(手動點擊輪播)</title>    <link type="text/css" rel="stylesheet" href="css/layout.css" />  </head>  <body>    <div class="slideShow">      <!--圖片布局開始-->      <ul>        <li><a href="#"><img src="img/picture01.jpg" /></a></li>        <li><a href="#"><img src="img/picture02.jpg" /></a></li>        <li><a href="#"><img src="img/picture03.jpg" /></a></li>        <li><a href="#"><img src="img/picture04.jpg" /></a></li>      </ul>      <!--圖片布局結束-->            <!--按鈕布局開始-->      <div class="showNav">        <span class="active">1</span>        <span>2</span>        <span>3</span>        <span>4</span>      </div>      <!--按鈕布局結束-->    </div>    <script src="js/jquery-1.11.3.js"></script>    <script src="js/layout.js"></script>  </body></html>

二、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    );    /*鼠標懸浮圖片停止輪播代碼結束*/})

以上就是本文的全部內容,大家可以結合下面這兩篇文章進行學習:



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 花莲市| 页游| 林州市| 盘山县| 东宁县| 台东县| 兴安盟| 会东县| 铜陵市| 东海县| 邯郸市| 屏山县| 延寿县| 秭归县| 江达县| 黔南| 阿合奇县| 漠河县| 福海县| 东莞市| 九龙县| 南开区| 元江| 如皋市| 柳江县| 肥西县| 楚雄市| 邹平县| 英吉沙县| 宁都县| 渭源县| 齐齐哈尔市| 惠来县| 维西| 临夏市| 广水市| 泰顺县| 阿坝县| 扎鲁特旗| 宁国市| 苗栗县|