コンテナ内に収まるように多くのサイズ変更要素を実行するアプリケーションがあります。内容がオーバーフローすることを意図している場合もあれば、完全に収まる場合もあるので、コンテナーでoverflow:autoを使用します。
問題はクロムにあります。コンテナのサイズを縮小すると、コンテナのスクロールバーが表示されます。新しい適切なサイズの画像を取得した場合でも、スクロールバーを必要としない適切なサイズです。
簡単な回避策は、単純なアプリケーションでは問題ありませんが、overflow:hiddenを設定してから、リフロー後にoverflow:autoを再度設定することです。ただし、このアプリでは、コンテナーは、コンテンツが適切にスケーリングされるかどうか、またはロードが完了したときでさえ(オーバーフローを変更するタイミングを認識しているため)、コンテナーは認識しません(実際には認識すべきではありません)。 。これはここで言及されたものと似ています:http ://www.google.ad/support/forum/p/Chrome/thread?tid = 3df53193ac1cf08b&hl = en 、しかし私はそれが私たちの状況では実行可能ではないと思います
コンテンツが収まるときにスクロールバーを非表示にする別の方法はありますか?問題を確認するためにHTMLを添付しました。緑をクリックして大きくし、もう一度小さくして小さくします。スクロールバーはIEとFirefoxで消えますが、クロムでは消えません([スクロールバーを修正]をクリックすると機能します)
<!DOCTYPE html>
<html>
<head>
<title>Scrollbar Woes</title>
<script type="text/javascript">
function toggle() {
var img = document.getElementById('content');
var span = document.getElementById('size');
var newSize = 820 - parseInt(span.innerHTML)
img.style.width = newSize + 'px';
img.style.height = newSize + 'px';
span.innerHTML = newSize;
};
function fixSize() {
var img = document.getElementById('scroll');
img.style.overflow = 'hidden';
img.scrollWidth; // Calculate width to force a reflow
img.style.overflow = 'auto';
};
</script>
<style>
* {
margin: 0;
padding: 0;
}
#scroll {
width: 400px;
height: 400px;
overflow: auto;
}
#content {
width: 390px;
height: 390px;
background: green;
}
</style>
</head>
<body>
<div id="scroll">
<div id="content" onclick="toggle()">Click to change size</div>
</div>
<hr />
Size = <span id="size">390</span>
<br />
<a href="javascript:void(0)" onclick="fixSize();">Fix Scrollbars</a>
</body>
</html>