1

このようなレイアウトの場合: http://codepen.io/anon/pen/dPwQod

HTML:

<div class="fixed-bg one"></div>
<div class="something"></div>
<div class="fixed-bg two"></div>
<div class="something"></div>
<div class="fixed-bg three"></div>
<div class="something"></div>
<div class="fixed-bg four"></div>
<div class="something"></div>

CSS:

.one {
  background: url('http://i.imgur.com/gAn5IiK.jpg');
}
.two {
  background: url('http://i.imgur.com/dPG6S6o.jpg');
}
.three {
  background: url('http://i.imgur.com/rTQcvNZ.jpg');
}
.four {
  background: url('http://i.imgur.com/k9aRzrU.jpg');
}
.fixed-bg {
  width: 100%;
  height: 300px;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
.something {
  width: 100%;
  height: 200px;
  background: black;
}

Chrome はスクロール時にビューポート全体を再描画するため、特に Retina ディスプレイではスクロールが非常に遅くなります。インスペクターで「ペイント長方形を表示」にチェックを入れると、実際に表示できます。

背景を個々のレイヤーに強制する方法を探しましたが、このレイアウトに合ったものは見つかりませんでした. translateZ(0) を提案し、背景を独自の固定 div に配置することを提案する人もいますが、これは固定背景が 1 つある場合にのみ機能します。このレイアウトのような複数の背景を持つスクロールでクロム全体を再描画しないようにする方法はありますか? または、少なくとも Chrome の遅延なしでこのレイアウトを可能にする方法はありますか?

乾杯。

4

0 に答える 0