我在Safari中进行简单切换时遇到了一些问题。在隐藏动画结束时真的很烦人的闪烁。 任何人吗?
CSS
#menu {
position:absolute;
left: 30px;
top: 30px;
padding: 30px;
background: #FF0;
}
#content {
width: 400px;
display: none;
}
的Javascript
$(document).ready(function() {
$('#menu').click(function() {
$('#content').toggle(700);
});
});
演示
答案 0 :(得分:5)
尝试将切换线更改为:
$('#content').toggle(700,'linear');
答案 1 :(得分:0)
将宽度/高度设置为0似乎存在问题,这必须是在设置toggle
之前display: none
动画结束时发生的问题。我弄清楚如何解决这个问题的唯一方法是通过漫长的方式完成动画:
var $c = $('#content'),
cw, ch;
$c.show();
cw = $c.width();
ch = $c.height();
$c.hide();
$('#menu').toggle(function() {
$c.css({
'width': 1,
'height': 1,
'opacity': 0
}).show().animate({
'width': cw,
'height': ch,
'opacity': 1
}, 700);
}, function() {
$c.animate({
'width': 1,
'height': 1,
'opacity': 0
}, 700, function() {
$c.hide();
});
});