使用 Jquery 一键移动对应的 div

Posted

技术标签:

【中文标题】使用 Jquery 一键移动对应的 div【英文标题】:Moving Corresponding Divs with a Single Click using Jquery 【发布时间】:2014-06-28 17:41:14 【问题描述】:

在 Main Wrapper 中,我有 5 个 Div。第一个 div 包含 4 个 Box(box_1, box_2,box_3,box_4) 我的点击事件将在其中发生。

main wrapper 里面的其他4个div,分别是box_1、box_2、box_3、box_4的内容。

当我点击我的第一个框时,点击事件应该动画第一个 div(向右滑动)并且 box_1 div 应该向右滑动。

这是我到目前为止所做的一个 JS 小提琴链接。

http://jsfiddle.net/swapnaranjita_nayak/8XcZX/

我只添加了 box_1 id 来向右滑动。我想为所有人编写一个通用代码。即如果我点击第二个框,第二个框从右边开始动画,如果我点击第三个框,第三个框应该从左边开始动画。

当我单击它们时,如何访问 4 个 Divs 的相应内容 div。注意:我已将一个单击事件附加到所有 4 个 div。

* 以上问题已解决** 新问题,

我已在每个 box_container 部分中添加回菜单 href 链接。单击此超链接后,我将再次返回菜单部分,并带有向右滑动的动画效果。菜单部分将通过左滑动画出现在窗口中。

下面的代码正在运行。

问题是当我单击任何框时,会出现相应的框容器。当我单击超链接选项“返回菜单”时,我什至返回到菜单部分。即4盒部分。问题从这里开始。如果我再次单击任何框,则移动到相应的框容器。点击超链接返回,菜单即 4 框部分刚刚从屏幕上消失。

注意:这次警报会出现两次。

html

<div class="main_wrapper" id="main_wrapper">
<div class="container_fluid" id="menu">
    <div class="wrapper">
        <div class="row">
            <div class="box1" id="box_1"></div>
            <div class="box2" id="box_2"></div> <div class="clear"></div>
        </div>

         <div class="row">
            <div class="box3" id="box_3"></div>
            <div class="box4" id="box_4"></div> <div class="clear"></div>
        </div>

    </div>
</div><!---End of Container fluid--->

 <div class="container_fluid" id="box_1_sec" style="display:none;margin-right:-170px;">
     <h1>Box1 Content</h1>
     <a href="#" id="back1">Back to #Menu</a>
</div>
     <div class="container_fluid" id="box_2_sec" style="display:none;margin-right:-170px;">
     <h1>Box2 Content</h1>
      <a href="#" id="back2">Back to #Menu</a>
</div>
 <div class="container_fluid" id="box_3_sec" style="display:none;margin-right:-170px;">
     <h1>Box3 Content</h1>
      <a href="#" id="back3">Back to #Menu</a>
</div>
 <div class="container_fluid" id="box_4_sec" style="display:none;margin-right:-170px;">
     <h1>Box4 Content</h1>
     <a href="#" id="back4">Back to #Menu</a>
</div>

CSS

 .container_fluid 
    width:100%;

.wrapper 
    width:1208px;
    margin:auto;

.row 
    padding:3% 3% 3% 3%;

.box1 
    height:100px;
    width:100px;
    background-color:red;
    margin-right:2%;
    float:left;

.box2 
    height:100px;
    width:100px;
    background-color:green;
    margin-right:2%;
    float:left;

.clear 
    clear:both;

.box3 
    height:100px;
    width:100px;
    background-color:black;
    margin-right:2%;
    float:left;

.box4 
    height:100px;
    width:100px;
    background-color:brown;
    margin-right:2%;
    float:left;

JQUERY

    $("#back1,#back2,#back3,#back4").click(function()
        alert($(this).attr('id'));
         $("#"+clicked_id+"_sec").animate(
            "marginRight":"-=170%"
         ,
          
            duration: 500,
            step: function() 
                console.log($(this).width());
            ,
            complete: function() 

                 $("#"+clicked_id+"_sec").hide()
                        menu.show();
                          menu.animate(
                            "marginLeft":"+=150%"
                         ,
                         
                            duration: 500,
                            step: function() 

                            ,
                            complete: function() 
                                 console.log("finished");
                            
                         );
            
         );
    );
);

【问题讨论】:

你的小提琴链接应该作为超链接给出,代码表明问题 嘿,我已经编辑了你的代码并添加了 Fiddle Demo 和 Code 并检查了这个***.com/help/how-to-ask Thnx,Stack Exchange 新手 :) 你能帮帮我吗? 签出@morvy 的回答它有效 如果您将代码示例简化为必要的部分,这个问题可能会更漂亮。 【参考方案1】:

将您的 box_1_sec 替换为

$("#"+clicked_id+"_sec")

这样就可以了

【讨论】:

嗨,Morvy,我更改了一点代码。现在啮合了。看看我的小提琴吧。 var clicked_num=$(this).attr('id').replace(/[A-Za-z$-]/g, ""); $("#box_"+clicked_num) - 这将起作用(在第二个函数中),但您需要将这些函数分开并首先将菜单放在外面(因为您在两个函数中都需要它)

以上是关于使用 Jquery 一键移动对应的 div的主要内容,如果未能解决你的问题,请参考以下文章

问题是:js是如何实现鼠标移动到不同栏位切换对应的显示内容的?

vue滑动选择器(一键开启时间选择器)

jquery OCUpload一键上传插件和pinyin4J使用

Jquery Ui:可选 - 可以一键选择两个列表项?

cmd批处理bat命令根据端口号一键关闭杀死对应进程程序

Jquery学习---一键上传