FFとIEで正常に動作するサイドバースライダーがあります。divをクリックすると、サイドバーがスライドします。もう一度クリックすると、スライドして戻ります。ただし、ChromeとSafariでは、最初は正常に機能しますが(アニメーションの幅を外側に、アニメーションの幅を後ろに)、2回目は、代わりにスライドするはずのdivがdivの下に部分的に表示されてクリックします。
問題の非常に簡単な例を作成しました。これがjavascriptです:
var slider_state = 'hidden';
function reveal_slider()
{
$('#reveal_div').animate({width:500});
slider_state = 'shown';
}
function hide_slider ()
{
slider_state = 'hidden';
$('#reveal_div').animate({width:0}, function(){
$('#reveal_div').hide();
});
}
$(document).ready(function(){
$('#slider_trigger').click(function(){
if (slider_state == 'hidden')
{
reveal_slider();
}
else
{
hide_slider();
}
});
});
そしてcss:
#slider_container
{
position:fixed;
top:350px;
right:0px;
z-index:21;
}
#slider_trigger
{
float:left;
width:35px;
height:100px;
background-color:yellow;
}
#reveal_div
{
float:left;
height:200px;
display:none;
background-color:blue;
border:3px black solid;
}
そしてhtml:
<body>
<div id='slider_container'>
<div id='slider_trigger'>
Click
</div>
<div id='reveal_div' >
</div>
</div>
</body>
助けてくれてありがとう。