![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
首記の件、offset値を少しずつ変化させるために下記ソースコードを作成したのですが、
描画の色に変化がありません。
console.logで確認すると値は変化しているのは確認できるのですが、描画に変化がありません。
やりたい事としては、白い部分を描画の上から下に少しずつ流れていくようなイメージにしたいです。
宜しくお願い致します。
//init
const canvas = document.getElementById('test');
const context = canvas.getContext('2d');
const WIDTH = $('#test').get(0).width = $(window).width();
const HEIGHT =$('#test').get(0).height = $(window).height();
function drawFrame() {
let grad = context.createLinearGradient(250,400,320,700);
for(let i = 0; i <= 1.0; i += 0.1) {
grad.addColorStop(0.3, 'rgb(204,0,0');
grad.addColorStop(i, 'rgb(255,255,255)');
grad.addColorStop(0.9, 'rgb(204,0,0');
context.clearRect(250,400,320,700);
console.log(i);
}
context.beginPath();
context.moveTo(250,500);
context.lineTo(250,600);
context.lineTo(320,600);
context.lineTo(320,700);
context.lineWidth = 4;
context.strokeStyle = grad;
context.stroke();
window.requestAnimationFrame(drawFrame);
}
window.requestAnimationFrame(drawFrame);
No.2ベストアンサー
- 回答日時:
No1です
どの様にしたいのかよくわからないけれど、とりあえず、ほぼご提示に近い形のままで、色が変化するようにしてみた例です。
・・・ってか、最初にライブラリ(わからんけど、jQueryかな?)を使っているみたいなので、色を変える方にもライブラリ使えばいいんじゃないの??
const canvas = document.getElementById('test');
const context = canvas.getContext('2d');
const WIDTH = $('#test').get(0).width = $(window).width();
const HEIGHT =$('#test').get(0).height = $(window).height();
let i = 0.1;
function drawFrame() {
let grad = context.createLinearGradient(250,400,320,700);
grad.addColorStop(0.3, 'rgb(204,0,0');
grad.addColorStop(i, 'rgb(255,255,255)');
grad.addColorStop(0.9, 'rgb(204,0,0');
context.clearRect(250,400,320,700);
context.beginPath();
context.moveTo(250,500);
context.lineTo(250,600);
context.lineTo(320,600);
context.lineTo(320,700);
context.lineWidth = 4;
context.strokeStyle = grad;
context.stroke();
i += 0.005;
if(i<0.9) window.requestAnimationFrame(drawFrame);
}
window.requestAnimationFrame(drawFrame);
No.1
- 回答日時:
こんにちは
>for(let i = 0; i <= 1.0; i += 0.1) {
> ~~
>}
ループ内で行っているのは、グラデーションの設定だけなので、何も描画していませんよね?
(ですので、ループさせるだけ無駄です)
実際に、描画しているのはループを抜けた後なので、最後の設定が有効となって、それに合った表示になるはずです。
「最後の設定」が都度変わるのなら、繰り返す間に変化してゆきますが、固定値になっているので、同じものを書いては消すという動作になっています。
drawFrameが呼ばれる毎に、少しずつ違う描画になるようにしてください。
※ 前回も申しましたように、「位置を移動するアニメーション」などで充分に原理を理解するようにしたほうが宜しいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 文の構造をご教示ください 2 2023/01/01 18:03
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- WordPress(ワードプレス) ワードプレスのエラー ログイン画面が表示できない 1 2022/11/05 09:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
Androidで画像の中で指定した範...
-
JTableの特定セルの背景色を変更
-
Canvas等の図形を移動する時,直...
-
Javaで文字の角度を変えて表示...
-
VB.NETのSendMessageを教えてく...
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
EXCEL VBAにて動的にCheckBOXを...
-
private static という変数の修飾
-
【sendkeysメソッドが動かずに...
-
変数の参照でエラーが出てしま...
-
多人数のじゃんけんプログラム
-
VBA 同じ名前のオブジェクトを...
-
final修飾子を使っているのに、...
-
javaのクラスの作り方、エラー...
-
newしないインスタンス?実体化...
-
java eclipse 型に解決できません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVAでの背景画像表示
-
VB.NET フォーム上に描いたグ...
-
VB.NETのSendMessageを教えてく...
-
C# DataGridView のCellPaintin...
-
Javaで文字の角度を変えて表示...
-
canvasで表示されてる画像を1...
-
画面のちらつきの原因が知りた...
-
Labelコントロールの背景をグラ...
-
重なった要素上でのイベントで...
-
java.awt.peer?
-
Canvas等の図形を移動する時,直...
-
OpenLayersの描画を固定で表示...
-
ID3DXSprite::Drawメソッドに関...
-
SwingとEDT(イベントディスパッ...
-
C#のGraphicsクラスについてです。
-
複数画像表示切り替え Visual c++
-
Androidのフォントサイズ(SP)と...
-
Androidで画像の中で指定した範...
-
描画処理が実行されない
-
JavaScript でスライダーを作る...
おすすめ情報