【问题标题】:Onclick maximize div on other divsOnclick 在其他 div 上最大化 div
【发布时间】:2016-10-22 17:03:47
【问题描述】:

我想在其他 div 上最大化 div 但不最小化其他 div 的内容。我的意思是内容不会被最小化。

我正在尝试这个

 <div id="content">
    <div id="containerleft">
       <div id="box1" class="box">im left the content here to see if it minimized</div>
       <div id="box2" class="box">im middle the content here to see if it minimized</div>
       <div id="box3" class="box">im right the content here to see if it minimized</div>
    </div>
 </div>

还有js代码

   $(".box").click(function(){

var clone = $(this).clone().addClass('active');
var parent = $(this).parent();
var pos = $(this).position();

$(this).append(clone);

console.log(pos);

clone.css({'position' : 'absolute', left: pos.left + 'px', top: pos.top + 'px'}).animate({
    width: '80%', 
    height : '50%',
    top: 0,
    left: '10%'
},300);


});

这与中间的 div 完美搭配,但不适用于其他 div。

例如,如果我单击右侧 div,我希望 div 在其位置最大化,而其他 div 最小化到左侧。

如果我点击左边的 div,另一个将被最小化到右边。

中间的 div 工作得很好,它显示在它的位置。 我希望每个 div 都显示在其有序的位置。右边显示在右边,左边显示在左边,中间显示在中间。

这里是jsfiddle demo

感谢您的支持。

如果用 css 固定就更好了。

【问题讨论】:

  • jsfiddle.net/7n8evb40 有点改变,但也许会对你有所帮助。
  • @KIMB-technologies 是的,动画是正确的,但是他们最小化的内容,我不希望内容最小化,就像 div 一样。

标签: javascript jquery html


【解决方案1】:

这是使用 css 的方法。

$(".box").on('click',function(){
    $(".box").removeClass('active');
    $(this).addClass('active');
});
#content{
 width:450px;
 height:150px;
 display: flex;
}

.box{
  -ms-flex: 1;
  flex: 1;
  position: relative;
  transition: all .3s;
  overflow:hidden;
}

.box>div{
    position: absolute;
    left: 0;
    max-width: 150px;
    top: 0;
    width: calc(450px - 40%);
    padding: 15px;
}

.box.active{
  -ms-flex: 1 1 60%;
  flex: 1 1 60%;
}

#box1{
 background:pink;
}
#box2{
 background:gray;
}

#box3{
 background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
<div id="box1" class="box"><div>im right the content here to see if it minimized</div></div>
<div id="box2" class="box"><div>im right the content here to see if it minimized</div></div>
<div id="box3" class="box"><div>im right the content here to see if it minimized</div></div>
</div>

【讨论】:

  • 正如我对 Kimb 说的,内容被最小化了,我希望最小化的 div 的内容保持原样,这意味着最大化的 div 超过了它们。
  • @ScooterDaraf 已编辑,内容宽度现在保持不变。
  • 它接近预期的结果:),但仍然有问题。点击前的内容没有完整显示,它们被隐藏了一半。我希望它们显示在整个 div 中,当单击其他 div 时,它就像跳过它一样,就像我在中间的小提琴中一样。
  • 好的,我从您的代码中修复了它,我必须添加 max-width: 150px;在 .box>div 中,如果您介意,我会编辑您的代码并添加它
  • 非常感谢您的帮助。
猜你喜欢
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
相关资源
最近更新 更多