我试图扭转这些标签的方向。目前它们高150px,缩小到90px。我决定我希望看到它们从90px变为150px。我认为反转功能很容易,但似乎没有用。有没有人有任何建议。
提前感谢您提供任何帮助/建议。
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
var navDuration = 500;
var navJumpHeight = "90px";
$('#tabs li').hover(function() {
$(this).animate({ height : "-="+navJumpHeight }, navDuration);
}, function() {
$(this).animate({ height : "150px" }, navDuration);
});
});
// --></script>
<style type="text/css"><!--
/* CSS Reset */
html,body,div,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,fieldset,input,hr{margin:0;padding:0;line-height:1em;}
h1,h2,h3,h4,h5,h6,pre,code,address,caption,cite,code,em,strong,th{font-size:1em;font-weight:normal;font-style:normal;line-height:1em;}
ul,ol{list-style:none;}
fieldset,img,hr{border:none;}
q:before,q:after{content:'';}
abbr,acronym{border:0;}
caption,th{text-align:left;}
table{border-collapse:collapse;border-spacing:0;}
td {vertical-align:top;}
html{font-size:100.01%;}
body{font-size:1em;}
a img{border: none;}
body{ font-family:Arial; font-size:10px; font-weight:500; background:#ffffff no-repeat center top; }
div.headerblock{ position:absolute; display:table-cell; text-align:center; left:0px; top:0px; width:100%; height:150px; }
div.header{ position:relative; width:900px; height:170px; margin-left:auto; margin-right:auto; }
div.logo { position:relative; display:table-cell; vertical-align:top; text-align:left; left:0px; top:0px; width:349px; height:170px; float:left; }
#headerblock #header #tabs { height: 150px; overflow: hidden; padding: 0 10px; left:40; list-style: none; position: relative; filter:alpha(opacity=85); opacity:0.85; }
#headerblock #header #tabs li, #headerblock #header #tabs li a { width: 100px; position: relative; float: left; }
#headerblock #header #tabs li { top: 0 px; margin: 0; background: none; padding: 0; display: block; vertical-align: bottom;}
#headerblock #header #tabs li a { display: block; color: #ffffff; font-size: 1.7em; text-decoration: none; text-transform: uppercase; height: 150px; line-height: 1.1em}
#headerblock #header #tabs #tab_about a { background-color: #ff0000; }
#headerblock #header #tabs #tab_services a{ background-color: #ffa500; }
#headerblock #header #tabs #tab_contact a { background-color: #ffff00; }
#headerblock #header #tabs #tab_learning a{ background-color: #00ff00; }
#headerblock #header #tabs #tab_clients a { background-color: #0000ff; }
--></style>
</head>
<body>
<div class="headerblock" id="headerblock">
<div class="header" id="header">
<div class="logo">
</div>
<ul id="tabs">
<li id="tab_about"><a href="#"> <br>Tab 1</a></li>
<li id="tab_services"><a href="#"> <br>Tab 2</a></li>
<li id="tab_contact"><a href="#"> <br>Tab 3</a></li>
<li id="tab_learning"><a href="#"> <br>Tab 4</a></li>
<li id="tab_clients"><a href="#"> <br>Tab 5</a></li>
</ul>
</div >
</div>
</body>
</html>
答案 0 :(得分:4)
仅仅扭转数字是不够的。
让我们先看看你的CSS。
只需将 a 标记的高度更改为适当的90px大小。 li 标记高度可以保持不变,因为您希望它保留标记在悬停时应增长的150px的高度。
#headerblock #header #tabs li a
{
display: block;
color: #ffffff;
font-size: 1.7em;
text-decoration: none;
text-transform: uppercase;
height: 90px;
line-height: 1.1em
}
现在你只需对你的JS进行一些更改。
一开始你的锚标签是90px高。你希望它增长(在mousover animate函数中+ =)60px以达到150px的高度。
var navJumpHeight = "60px";
$(this).animate({ height: "+=" + navJumpHeight }, navDuration);
正如您在CSS中看到的, li 标签的高度保持在150px。您要做的就是更改 li a 标记的高度,该标记定义了background-color属性。
$('#tabs li a').hover(function () {
在mouseout上,您希望它再次缩小为90px:
$(this).animate({ height: "90px" }, navDuration);
为了使mouseover和mouseout函数保持一致并重用navJumpHeight变量而不是使用幻数,你可以将上一行改为:
$(this).animate({ height: "-=" + navJumpHeight }, navDuration);
我在我的机器上运行了以下代码:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
<script type="text/javascript">
<!--
$(document).ready(function () {
var navDuration = 500;
var navJumpHeight = "60px";
$('#tabs li a').hover(function () {
$(this).animate({ height: "+=" + navJumpHeight }, navDuration);
}, function () {
$(this).animate({ height: "-=" + navJumpHeight }, navDuration);
});
});
// -->
</script>
<style type="text/css">
<!--
/* CSS Reset */ html,body,div,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,fieldset,input,hr{margin:0;padding:0;line-height:1em;} h1,h2,h3,h4,h5,h6,pre,code,address,caption,cite,code,em,strong,th{font-size:1em;font-weight:normal;font-style:normal;line-height:1em;} ul,ol{list-style:none;}fieldset,img,hr{border:none;}q:before,q:after{content:'';}abbr,acronym{border:0;}caption,th{text-align:left;}table{border-collapse:collapse;border-spacing:0;}td {vertical-align:top;}html{font-size:100.01%;}body{font-size:1em;}a img{border: none;}body{ font-family:Arial; font-size:10px; font-weight:500; background:#ffffff no-repeat center top; }
div.headerblock{ position:absolute; display:table-cell; text-align:center; left:0px; top:0px; width:100%; height:150px; }
div.header{ position:relative; width:900px; height:170px; margin-left:auto; margin-right:auto; }
div.logo { position:relative; display:table-cell; vertical-align:top; text-align:left; left:0px; top:0px; width:349px; height:170px; float:left; }
#headerblock #header #tabs { height: 150px; overflow: hidden; padding: 0 10px; left:40; list-style: none; position: relative; filter:alpha(opacity=85); opacity:0.85; }
#headerblock #header #tabs li,
#headerblock #header #tabs li a { width: 100px; position: relative; float: left; }
#headerblock #header #tabs li { top: 0; margin: 0; background: none; padding: 0; display: block; vertical-align: bottom;}
#headerblock #header #tabs li a { display: block; color: #ffffff; font-size: 1.7em; text-decoration: none; text-transform: uppercase; height: 90px; line-height: 1.1em}
#headerblock #header #tabs #tab_about a { background-color: #ff0000; }
#headerblock #header #tabs #tab_services a{ background-color: #ffa500; }
#headerblock #header #tabs #tab_contact a { background-color: #ffff00; }
#headerblock #header #tabs #tab_learning a{ background-color: #00ff00; }
#headerblock #header #tabs #tab_clients a { background-color: #0000ff; }
-->
</style>
</head>
<body>
<div class="headerblock" id="headerblock">
<div class="header" id="header">
<div class="logo"> </div>
<ul id="tabs">
<li id="tab_about"><a href="#"> <br>Tab 1</a></li>
<li id="tab_services"><a href="#"> <br>Tab 2</a></li>
<li id="tab_contact"><a href="#"> <br>Tab 3</a></li>
<li id="tab_learning"><a href="#"> <br>Tab 4</a></li>
<li id="tab_clients"><a href="#"> <br>Tab 5</a></li>
</ul>
</div>
</div>
</body>
</html>
希望这会对你有所帮助。重构有很多空间!