画像をoverflow:auto divにロードしました。読み込み時に div をスクロールすると、スクロールバーが即座に消えます。たとえば、div の高さを (高さを変更することなく) アニメーション化すると、元に戻すことができますが、それが消えた後でのみです。アニメーションの後、それは永久に修正されます。
-webkit-transform:translationZ(0); を削除すると、これを修正できます。divのCSSからですが、これが提供するパフォーマンスの向上が必要なので(この小さなテストプログラムではなく、派生元のコードに対して)、削除できません。
ここで何が起こっているのか、どうすれば修正できるのでしょうか?
それはすべてjsfiddleにあります:http://jsfiddle.net/forgetcolor/dB38c/5/
また、以下:
HTML:
<div id="overflow"></div>
<p id="btn">click to fix</p>
CSS:
#overflow {
overflow:auto;
width:500px;
height:200px;
/* comment out the webkit-transform and the problem dissapears
* (but I need the transform for acceleration
*/
-webkit-transform:translateZ(0);
border:1px solid #000;
}
Javascript:
var scrollbarWidth = 15;
var r = Math.floor((Math.random()*100000)+1);
//adding r to simulate non-cached images
var pagelink = 'http://lorempixel.com/output/city-q-c-1920-1920-4.jpg?'+r;
$('#overflow').html(
"<img width='485' id='imgload' src='"+pagelink+"' />"
);
$('#btn').click(function() {
$('#overflow').animate({height:200},0);
});
更新: 提出されたバグレポート: https://code.google.com/p/chromium/issues/detail?id=129186