【发布时间】:2020-11-12 03:47:02
【问题描述】:
我正在制作一个页面,您可以在其中打开和关闭描述。 该页面在 Firefox 上完美运行,但在 Chrome 等其他浏览器上,当您打开和关闭其他 div 时,该页面似乎会上升。
编辑:当我关闭另一个菜单下的菜单时,页面会上升。但不是相反。 这是一个链接,您可以查看 chrome 发生了什么: https://imgur.com/a/4zgrzc0
我想问题是$(this).parent('.sub-menu').siblings().find('ul').slideUp('fast');
我怎样才能避免这种情况?
非常感谢。
$(document).ready(function(){
$(".exposition").on('click',function(){
var hello = $(this).attr('data-id');
$('.photos-evenements').hide();
$('[id='+ hello + ']').show();
});
});
$( document ).ready(function(open) {
$('.sub-menu ul').hide();
$('.sub-menu a').click(function () {
$(this).parent('.sub-menu').siblings().find('ul').slideUp('fast'); // to hide all ul expect this one
$(this).parent('.sub-menu').children('ul').slideToggle(200);
});
$('.sub-menu a').click(function(open) {
open.preventDefault();
});
});
.photos-evenements{
display:none;
max-width: 100%;
max-height: 90vh;
}
.exemple {
height:100vh;
background-color:lavender;
}
<div class="exemple">hi</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="menu">
<li class='sub-menu'> <a href='#' class="exposition" data-id="divId1">1</a>
<ul>
<li> When opened, i'm a description, I'm not supposed to move the page when opened or closed.
</li>
</ul>
</li>
<li class='sub-menu'> <a href='#' class="exposition" data-id="divId2">2</a>
<ul>
<li> I'm supposed to close 1 and don't move the page up
</li>
</ul>
</li>
</ul>
<div class="exposition">
<div class="photos-ind"><img id="divId1" class="photos-evenements" src="http://follebeton.com/img/Performances%20OK.jpg" data-id="divId1"/></div>
<div class="photos-ind"><img id="divId1" class="photos-evenements" src="http://follebeton.com/img/333_3.png" data-id="divId1"/></div>
<div class="photos-ind"><img id="divId1" class="photos-evenements" src="http://follebeton.com/img/333_1.png" data-id="divId1"/></div>
</div>
<div class="exposition">
<div class="photos-ind"><img id="divId2" class="photos-evenements" src="http://follebeton.com/img/Performances%20OK.jpg" data-id="divId2"/></div>
<div class="photos-ind"><img id="divId2" class="photos-evenements" src="http://follebeton.com/img/333_3.png" data-id="divId1"/></div>
<div class="photos-ind"><img id="divId2" class="photos-evenements" src="http://follebeton.com/img/333_1.png" data-id="divId1"/></div>
</div>
</div>
【问题讨论】:
-
缺少 jquery 标志?
-
我认为这不是您答案的解决方案,但是以下标记无效:
<img id="divId1" ...因为多个 img 标签上的 id 相同。 ID 属性必须是唯一的。 -
如果你隐藏东西并显示东西,下面的东西会移动。如果您具有隐藏/可见的可见性,那么隐藏的东西与可见的东西占用相同的空间是唯一的。所以切换一个类,而不是使用淡入/淡出
-
这与问题无关。如果你删除 id。问题还是一样,那不是我要的...
标签: javascript html jquery google-chrome firefox