滑鼠懸浮背景上下翻滾切換導航

admin發表於2019-01-25

本章節分享一段程式碼例項,它實現了滑鼠懸浮導航選單上下滾動效果。

類似效果非常的醒目且動感十足,下面通過程式碼介紹一下它的實現過程。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
body{
  font-size:12px;
  color:#CCC;
  margin:0;
  padding:0;
}
a:focus{outline:none;}
.menu{
  width:800px;
  margin:0 auto;
}
img{
  border-style:none;
  border-width:0;
}
 
#antzone ul li a{
  color:#000;
  background:transparent url(mytest/jQuery/a_bg.gif) repeat-x left bottom;
  background-position:left bottom;
}
#antzone ul li span{
  background:transparent url(mytest/jQuery/a_bg.gif) repeat-x left top;
  background-position:left top;
}
#antzone{
  height:40px;
  width:800px;
  margin:0 auto;
  padding:0;
}
#antzone ul{
  list-style:none;
  font-size:1.1em;
  width:800px;
  margin:15px 0 50px;
  padding:0;
}
#antzone ul li{
  overflow:hidden;
  float:left;
  height:40px;
  width:114px;
  display:block;
  text-align:center;
  margin:0;
  padding:0;
}
#antzone ul li a,#antzone ul li span{
  float:left;
  text-decoration:none;
  color:#fff;
  clear:both;
  width:100%;
  height:20px;
  line-height:20px;
  padding:10px 0;
}
#antzone ul li a{color:#5F0909;}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type=text/javascript>
$(document).ready(function() {
  jQuery.nav = function(navhover) {
    $(navhover).prepend("<span></span>");
    $(navhover).each(function() {
      var linkText = $(this).find("a").html();
      $(this).find("span").show().html(linkText);
    });
 
    $(navhover).hover(function() {
      $(this).find("span").stop().animate({
        marginTop: "-40"
      }, 250);
    } , function() {
      $(this).find("span").stop().animate({
        marginTop: "0"
      }, 250);
    });
  };
  $.nav("#antzone li");
});
</script>
</head>
<body>
<div id="antzone">
  <ul>
    <li><a href="#">螞蟻部落一</a></li>
    <li><a href="#">螞蟻部落二</a></li>
    <li><a href="#">螞蟻部落三</a></li>
    <li><a href="#">螞蟻部落四</a></li>
    <li><a href="#">螞蟻部落五</a></li>
  </ul>
</div>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).$(document).ready(function() {}),當文件結構完全載入完畢再去執行函式中的程式碼。

(2).jQuery.nav = function(navhover) {},為jQuery類新增一個靜態函式nav(),引數是一個選擇器。

(3).$(navhover).prepend("<span></span>"),選擇器匹配的元素的內部的前面新增span元素。

(4).$(navhover).each(function() {}),遍歷每一個匹配元素。

(5).var linkText = $(this).find("a").html(),獲取連結a的文字內容。

(6).$(this).find("span").show().html(linkText),將span元素的文字內容設定為linkText。

(7).$(navhover).hover(function() {

  $(this).find("span").stop().animate({

    marginTop: "-40"

  }, 250);

} , function() {

  $(this).find("span").stop().animate({

    marginTop: "0"

  }, 250);

}),當滑鼠懸浮的時候,元素就會動畫方式上滾40px,當滑鼠離開的時候元素又會復位。

這樣就實現了滾動效果。

二.相關閱讀:

(1).prepend()參閱jQuery prepend()一章節。

(2).each()可以參閱jQuery each()一章節。

(3).find()可以參閱jQuery find()一章節。

(4).stop()可以參閱jQuery stop()一章節。

(5).animate()可以參閱jQuery animate()一章節。

相關文章