Jquery 选项卡的反向功能。

Jquery 选项卡的反向功能。,jquery,html,navigation,jquery-animate,Jquery,Html,Navigation,Jquery Animate,我正在尝试反转这些选项卡的方向。目前,他们是150像素高,收缩到90像素。我决定我希望看到他们从90像素到150像素。我认为反转功能会很容易,但是,这似乎不起作用。有人有什么建议吗 提前感谢您的帮助/建议 <html> <head> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script> &

我正在尝试反转这些选项卡的方向。目前,他们是150像素高,收缩到90像素。我决定我希望看到他们从90像素到150像素。我认为反转功能会很容易,但是,这似乎不起作用。有人有什么建议吗

提前感谢您的帮助/建议

<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">
        &nbsp;
    </div>
    <ul id="tabs">
        <li id="tab_about"><a href="#">&nbsp;<br>Tab 1</a></li>
        <li id="tab_services"><a href="#">&nbsp;<br>Tab 2</a></li>
        <li id="tab_contact"><a href="#">&nbsp;<br>Tab 3</a></li>
        <li id="tab_learning"><a href="#">&nbsp;<br>Tab 4</a></li>
        <li id="tab_clients"><a href="#">&nbsp;<br>Tab 5</a></li>
    </ul>
</div >
</div>
</body>
</html>


仅仅颠倒数字是不够的

CSS 让我们先看看你的CSS

只需将a标记的高度更改为90px的适当大小。li标记高度可以保持不变,因为您希望它保持150px的高度,a标记应在悬停时增长

#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
}
JavaScript 现在您只需对JS进行一些更改

在开始时,你的锚定标签是90像素高。您希望它以60px的速度增长(+=在mousover animate函数中),以达到150px的高度

var navJumpHeight = "60px";
$(this).animate({ height: "+=" + navJumpHeight }, navDuration);
正如您在CSS中看到的,li标记的高度保持在150px。您只需更改定义了“背景色”属性的li a标记的高度

$('#tabs li a').hover(function () {
在mouseout上,您希望它再次收缩到90像素:

$(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">&nbsp;</div>
            <ul id="tabs">
                <li id="tab_about"><a href="#">&nbsp;<br>Tab 1</a></li>
                <li id="tab_services"><a href="#">&nbsp;<br>Tab 2</a></li>
                <li id="tab_contact"><a href="#">&nbsp;<br>Tab 3</a></li>
                <li id="tab_learning"><a href="#">&nbsp;<br>Tab 4</a></li>
                <li id="tab_clients"><a href="#">&nbsp;<br>Tab 5</a></li>
            </ul>
        </div>
    </div>
</body>
</html>


希望这对你有帮助。重构的空间很大

正确,目前它不能,这就是原因,但当我反转值和/或运算符时,它不起作用。我这样发布的原因是它是工作代码。。。我试着让它反向工作。好吧,我编辑了我的答案,以便解释一下你可能需要改变哪些部分以及为什么。希望这能回答你的问题……;)谢谢你对迪莫的帮助,非常感谢。