Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onclick show div重叠/隐藏其他_Javascript_Html_Jquery_Css_Frontend - Fatal编程技术网

Javascript Onclick show div重叠/隐藏其他

Javascript Onclick show div重叠/隐藏其他,javascript,html,jquery,css,frontend,Javascript,Html,Jquery,Css,Frontend,我试图实现3个可点击的,在点击时展开和隐藏/重叠其他内容,同时显示每个点击的中的内容。我现在只有JQuery 我最初的问题是,我应该用什么?(Flexbox?CSS动画?反应?) 在普通的html+css+js堆栈中,是否可能没有一个很好的转换? 我制作了一张图片来说明我想说的: 只需使用纯Javascript,您所需要做的就是向每个div添加一个click事件,当单击一个div时,您就可以发出yourDivName.setAttribute(“样式”,“显示:块”)并发出yourDivName

我试图实现3个可点击的
,在点击时展开和隐藏/重叠其他内容,同时显示每个点击的
中的内容。我现在只有JQuery

我最初的问题是,我应该用什么?(Flexbox?CSS动画?反应?) 在普通的html+css+js堆栈中,是否可能没有一个很好的转换? 我制作了一张图片来说明我想说的:


只需使用纯Javascript,您所需要做的就是向每个div添加一个click事件,当单击一个div时,您就可以发出
yourDivName.setAttribute(“样式”,“显示:块”)
并发出
yourDivName.setAttribute(“样式”,“显示:无”)到其他两个。然后对每个人重复这个过程。显然,将每个函数都包含在一个
函数yourFunctionName()中{
//在这里输入逻辑
}


您的过程应该是首先获取每个div并将其放入一个变量中,然后根据您希望对div执行的操作来执行上述代码。我希望这有助于让我知道您是否希望我为您执行Javascript:)

首先,在询问问题时,您应该在问题中编写脚本。因为我们必须看看你有什么代码

关于你的问题,有很多选择。如果要使用jQuery:

HTML:

如果您想使用CSS,可以执行以下操作:

HTML:


如果你想制作一些动画,你可以使用

我在回答我自己的问题,向你展示我取得的进步。 根据你的两个建议,这一点已经开始得到重视
(最后是Jsfiddle)

HTML

Js+Jquery

我选择了flexbox的解决方案。这并不完全是我想要的,但它确实做到了。 现在我遇到的问题如下

如何将首先隐藏的内容放在我的图像旁边而不是下面
当一个div打开时,如何关闭其他div?
再次单击
后如何隐藏内容?(如果我理解正确,这是一种“如果/然后/否则”的情况)
我认为最后两个问题是经常被问到的,所以我将开始自己搜索,只是展示我的进展

再次感谢您抽出时间,我希望我在格式化方面做得更好

这是一个jsfiddle。


Ps:我也在学习响应能力。

谢谢!这将有助于我的研究!我害怕走错方向。我会先尝试自己排序,然后发布代码!谢谢你的时间和回答,现在就开始工作,稍后我会发布代码!对不起,我没有代码,因为我真的不知道从哪里开始!
<div class="group"></div>
<div class="group"></div>
<div class="group"></div>
$('.group').on('click', function(){
    $('.group').hide();
    $(this).show();
});
<div class="group"></div>
<div class="group"></div>
<div class="group"></div>
.group{
    display: none;
}
.group:active{
    display: block;
}
   <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>StackCode</title>
    <link rel="stylesheet" href="dummy.css" />  
</head>
<body>
<header>    
</header>
<section class="section">   
        <div class="service-box">
                <div class="service-story">                 
                            <div> <h1> Title </h1> </div>
                <img class="img-left" src="https://via.placeholder.com/250x700">
                            <div class="service-story-expand">
                                <h1>TITLE</h1>
                                <p>Sample text</p>
                                <img src="https://via.placeholder.com/100">
                            </div>                                      
                 </div> 
                 <div class="service-art">
                            <div> <h2> Title2 </h2></div>
                            <img class="img-middle" src="https://via.placeholder.com/250x700"> 
                            <div class="service-art-expand">
                                <h1>TITLE</h1>
                                <p>Sammple text</p>
                            </div>
                 </div> 
                 <div class="service-motion">
                            <div> <h2> Title3 </h2></div>
                            <img class="img-right" src="https://via.placeholder.com/250x700"> 
                            <div class="service-motion-expand">
                                <h1>TITLE</h1>
                                <p>Sammple text</p>
                            </div>
                 </div> 
            </div>
</section>      
<script src="jquery-3.4.1.min.js"></script>
<script src="dummy.js"></script>
</body>
</html>
*
{
    margin:0px;
    padding:0px;
}

html { 
    overflow-x :hidden; 
    background: black;
}

header
{
  height:20px;
    overflow: hidden;
    background-color: black;
    padding: 45 0 0 0;
    z-index: 0;
    width: 100%;
}

.section{
    width: 100%;
    background:grey;
    margin: auto;
}

.service-box{
  overflow: hidden;
    width: 90%;
    height: auto;
    margin:auto;
    display: flex;
    justify-content: space-evenly;
}

.service-story{
    height: auto;
    overflow: hidden;
    flex:1;
    order: 1;
    transition: flex .3s ease-out;
}

.service-story.clicked{
    background:white;
    height: auto;
    flex:6;
    transition: flex .3s ease-out;
}

.service-story-expand{
    display: none;
}

.service-art{
    overflow: hidden;
    flex:1; 
    transition: flex .3s ease-out;
    order: 2;
}

.service-art.clicked{
    background:white;
    flex:6;
    transition: flex .3s ease-out;
}

.service-art-expand{
    display: none;
}

.service-motion{
    overflow: hidden;
    flex:1; 
    transition: flex .3s ease-out;
    order: 3;
}

.service-motion.clicked{
    background:white;
    flex:6;
    transition: flex .3s ease-out;
}

.service-motion.clicked img{
    float: left;
}

.service-motion-expand{
    display: none;
}

.service-story.clicked img{
    width:auto;
  height:auto;
}
$('.service-story').on('click', function(){
    $(this).toggleClass('clicked');
    $(this).show();
    $('.service-story-expand').show();
});

$('.service-art').on('click', function(){
    $(this).toggleClass('clicked');
    $(this).show();
    $('.service-story-expand').show();  
});

$('.service-motion').on('click', function(){
    $(this).toggleClass('clicked');
    $(this).show();
    $('.service-motion-expand').show();
});