CSS パターンを動的に生成する必要があるため、クライアント側で複数linear-gradient
またはradial-gradient
CSSプロパティに適用する必要があります。background
そして、これらのグラデーションのパラメーターを同時に動的に変更する必要があります。
これを使用すると、背景にグラデーションが 1 つだけ適用されます。
var color1;
var color2;
var color3;
var color4;
var direction1;
var direction2;
var direction3;
var direction4;
var size;
$("body").css({
background: 'linear-gradient('+direction1+', '+color1+' 25%, transparent 25%) '+size+'/2 0,
linear-gradient('+direction2+', '+color2+' 25%, transparent 25%) '+size+'/2 0,
linear-gradient('+direction3+', '+color3+' 25%, transparent 25%),
linear-gradient('+direction4+', '+color4+' 25%, transparent 25%)'
});
各プロパティが他のプロパティを上書きするため、ここでも同じことが起こります。
$("body").css('background','linear-gradient('+direction1+', '+color1+' 25%, transparent 25%) '+size+'/2 0)');
$("body").css('background','linear-gradient('+direction2+', '+color2+' 25%, transparent 25%) '+size+'/2 0)');
$("body").css('background','linear-gradient('+direction3+', '+color3+' 25%, transparent 25%)');
$("body").css('background','linear-gradient('+direction4+', '+color4+' 25%, transparent 25%)');
を使用してみましLessCSS
たが、マウスが動くたびに css プロパティが変更されるたびに新しいスタイルシートをレンダリングする必要があるため (これは要件です)、CPU 負荷が高すぎます。
すべてのグラデーションを一度に適用する必要があることに注意してください。使用するグラデーションをブラウザーに決定させるのではありません。
質問 1: これをより効率的に行う方法を教えてください。
質問 2:width
1 つの宣言で複数のプロパティを宣言すると(つまり、プロパティ内の のheight
隣に、またはプロパティを使用するだけで)、最初のプロパティのみが適用される
ことにも気付きました。これを回避する方法は?linear-gradient
background
width
height
background-size