キャンバスを使用してイメージをレンダリングしています。この奇妙なグラフィックのバグが表示されることがあります。このバグは、スクロールするとすぐに消えます。Chromeの奇妙なキャンバスレンダリングのバグ
これは、反応成分の一部である、you can see the code for it here.
スクロールやレンダリング処理における何らかの更新をトリガした後、それが見えるそれが必要として:
これは私のイメージのCSSの外観です:
.async-image {
position: relative;
z-index: 1;
background: black;
overflow: hidden;
transform: translateZ(0)
}
.async-image canvas {
pointer-events: none;
opacity: 0;
transform: translateZ(0)
}
.async-image .preload {
position: absolute;
transform: scale(1.2);
}
.async-image .preload.ready {
opacity: 1;
}
.async-image .src {
position: absolute;
transform: scale(1.1);
}
.async-image .src.ready {
opacity: 1;
transform: scale(1);
}
.async-image img {
opacity: 0;
}
何が原因か分かりませんが、メインキャンバスの上に下にあるキャンバスがあり、プリローダーとしてソース画像の10x10のぼかし画像を表示するために使用されています。準備ができたら、画像が少し拡大されます。
このバグは、別のタブに切り替えてから戻ったときに発生するようです。
画像の上に何度もレンダリングしているように見えます。おそらく、レンダリングの前に 'ctx.beginPath()'を呼び出すことを忘れるかもしれません。あるいは、レンダリングする前にキャンバスをクリアしないでください。しかし、コードがなければ、何が間違っているかを推測することしかできません。 – Blindman67
それは真実ではありません。私はそれを一度レンダリングしています。イメージは実際には反応コンポーネントであり、マウント時およびソースが変更されたときにのみレンダリングされます。そして、私はキャンバスをもう一度レンダリングする前にキャンバスをクリアしています。それでも、スクロールで消えている問題をどのように説明していますか? –
ウェブサイトへのリンクを送信してチェックアウトすることはできますか? – divix