【发布时间】:2019-06-18 02:11:27
【问题描述】:
我有 2 个divs,其中一个通过display:none; 隐藏。两者在属性 right 上具有相同的 css 转换。
如果我通过 JQuery 更改属性 right 并显示隐藏的 div,或者使用 $.css('display','none') 或 $.show() 或 $.toggle() 等,隐藏的 div 会立即在结束位置绘制
$('button').on('click',function(){
$('.b').show();
$('.b').css('right','80%');
$('.a').css('right','80%');
})
body {
width:800px;
height:800px;
}
div {
width:50px;
height:50px;
background-color:#333;
position:absolute;
display:none;
right:5%;
top:0;
transition:right .5s cubic-bezier(0.645, 0.045, 0.355, 1);
color: white;
}
.a {
display:block;
top:60px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='a'>A
</div>
<div class='b'>B
</div>
<button>Launch</button>
如果我使用$.animate(),它将起作用。但我的问题是;这是错误还是正常行为?
编辑不是Transitions on the display: property的重复项,因为这里的问题不在于动画显示属性也不在于可见性
【问题讨论】:
-
正常行为,在显示和更改右侧之间需要稍许延迟
-
我正要说“好的”,但你这里的正常行为是什么?不起作用的东西不能是正常的行为,对吗?这只是一个错误,一个众所周知的错误,我可以理解,我会处理它,但仍然是一个错误,不是吗?
-
这不是重复的。我怎么能否认呢?
-
这不是一个错误,但它应该是这样工作的......是的,它不是重复的。我没有必要的语言来解释它,但其他人会来更好地解释
-
检查这个:jsfiddle.net/r7016skg 添加一个小的延迟将输出你所期望的
标签: javascript jquery css