Javascript 带div滑出的多重显示隐藏切换

Javascript 带div滑出的多重显示隐藏切换,javascript,show-hide,jquery,Javascript,Show Hide,Jquery,我不熟悉编码,需要jQuery的帮助。我有两个s(一个带有图像,另一个带有菜单列表,两个都是50%宽度),我需要能够单击其中一个菜单选项,使新的div(50%宽度)从右侧显示,同时将其他两个div的宽度分别减少到25%。然后单击相同的菜单选项以隐藏新的div并恢复为原始宽度。但是,如果在新div可见时单击另一个菜单选项,我需要它将内容更改为特定的菜单选项内容 如何使用jQuery交换左侧的 以下是我正在使用的HTML: <!doctype html> <html lang="e

我不熟悉编码,需要jQuery的帮助。我有两个
s(一个带有图像,另一个带有菜单列表,两个都是50%宽度),我需要能够单击其中一个菜单选项,使新的div(50%宽度)从右侧显示,同时将其他两个div的宽度分别减少到25%。然后单击相同的菜单选项以隐藏新的div并恢复为原始宽度。但是,如果在新div可见时单击另一个菜单选项,我需要它将内容更改为特定的菜单选项内容

如何使用jQuery交换左侧的

以下是我正在使用的HTML:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
     <!-- SCRIPT FILES -->    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
     <script type="text/javascript" src="script.js"></script>     
     <!-- CSS STYLESHEETS -->    
    <link rel="stylesheet" href="reset.css" type="text/css" />
    <link rel="stylesheet" href="main.css" type="text/css" />    
</head>
<body>
    <div id="wrapper">    
        <div id="header">        
        </div><!--header-->        
            <div id="container">        
                <div class="box-container">                
                    <div class="box1">                    
                        <img src="images/Untitled-1.png" alt="logo">                    
                    </div>                    
                    <div class="box2">                    
                        <div id="nav">                        
                            <ul>                            
                                <li><a>hello!</a></li>                                
                                <li><a>ADVERTISING</a></li>                                
                                <li><a>DESIGN</a></li>                                
                                <li><a>ABOUT</a></li>                                
                                <li><a>BLOG</a></li>                                
                                <li><a>SHOP</a></li>                                
                            </ul>                            
                        </div><!--nav-->                        
                    </div><!--box2-->                    
                    <div class="box3">                    
                        <div id="ADVERTISING" class="content">ADVERTISING</div>                        
                        <div id="DESIGN" class="content">DESIGN</div>                        
                        <div id="ABOUT" class="content">ABOUT</div>                        
                        <div id="BLOG" class="content">BLOG</div>        
                        <div id="SHOP" class="content">SHOP</div>                    
                    </div>                    
                </div><!--box-container-->            
            </div><!--container-->        
        <div id="footer">        
        </div><!--footer-->        
    </div><!-- wrapper-->        
</body>
</html>​

  • 对于初学者来说:

    根据您当前的CSS,您可以执行以下操作:

    $(function() {
        $("#nav").delegate("li a","click", function() {
            $(".box3").show();
            $("#" + $(this).text()).show().siblings().hide();
        });        
    });​
    
    ,虽然您可以看到CSS需要一些工作才能100%运行。不过,我建议做一些更改:提供与ID匹配的链接和容器,如下所示:

    <li><a id="ad">ADVERTISING</a></li> 
    
    <div id="ad-container" class="content">ADVERTISING</div>  
    
    …它允许您随意更改文本,而不必担心JS稍后会中断。另一种选择是,如果链接数量在所有情况下都与
    一致,即使由于“hello!”链接而存在偏移,也可以使用
  • 关闭列表中链接的索引

    使用当前HTML:

    $(function() {
        $("#nav").delegate("li","click", function() {
            $(".box3").show();
            $(".box3 .content").hide().eq($(this).index()-1).show();
        });        
    });​
    
    我认为jQuery的函数可能对您有用

    您需要做的是将窗口外的隐藏div添加到HTML中(或者可以使用jquery on
    document.ready
    event动态添加它,如果您愿意的话),然后使用上述动画功能将其滑入滑出,并将其绑定到菜单项的单击功能

    示例代码 解释 在上面的代码中,我们将代码绑定到具有
    id的元素的
    单击事件。单击元素后,代码就会启动。我们检查
    .hidden
    是否有一个名为“visible”的css类。否则,我们将设置隐藏div的动画以滑入。如果它有一个可见的类,则将其滑出

    工作小提琴 这是一份为你工作的工作

    一些指针
    • 在隐藏div的CSS中,记住指定一个大于当前左面板的z索引
    • 在隐藏div的CSS中,请记住将
      位置设置为
      绝对值
      ,将
      设置为大约
      -1200px
      (或大于window.width(),以使其适用于所有屏幕大小。)

    这是一个JSFIDLE,我尝试从这里复制和粘贴了许多其他示例,但我不知所措。您的JSFIDLE无法工作,因为您试图加载具有相对URL的资产,即使它们位于错误的域中。要真正利用JSFIDLE的可用性,您应该将HTML/JS/CSS拆分为单独的面板。没有JS btwthanks,您也可以这样做。我仍然对这一点迷惑不解,尼克,您的评论和示例似乎出于某种原因消失了。没有JS,您怎么办?这是css3动画吗?不客气,我已经更新了答案并添加了一些指针。伙计们,你能帮我回答其他的问题吗?我不能让它在我的浏览器中工作。另一个答案是,我不知道如何将这个答案合并到我的代码中。我在这里是一个真正的业余爱好者。我需要它从右边进入,并且在切换时将框1和框2的宽度分别切换到25%。我将顶部JSFIDLE中的所有代码复制到我的文件中,但它似乎不起作用。我是否遗漏了要做的事情?我是否需要在js文件开始时执行document.ready操作?
    $(function() {
        $("#nav").delegate("li a","click", function() {
            $(".box3").show();
            $("#" + this.id + "-container").show().siblings().hide();
        });        
    });
    
    $(function() {
        $("#nav").delegate("li","click", function() {
            $(".box3").show();
            $(".box3 .content").hide().eq($(this).index()-1).show();
        });        
    });​
    
    $(document).ready(function(){
        $('#slide').click(function(){
        var hidden = $('.hidden');
        if (hidden.hasClass('visible')){
            hidden.animate({"left":"-1000px"}, "slow");
            hidden.removeClass('visible');
        } else {
            hidden.animate({"left":"0px"}, "slow");
            hidden.addClass('visible');
        }
        });
    });​