キャンバスを画像の背景にする考えがあります。キャンバス要素を背景にしたい理由は、ユーザーがログインしたときに画像をぼかしたいからです。それは良い効果だと思います。ページを更新しないので、ぼかし効果をアニメートするのが好きです。それらはすべて互いに依存しているため、ここで複数の質問をするつもりです。
これを作る方法について2つのアイデアがあります。最初のものには、背景画像が設定された単純な div タグがあります。次に、ユーザーがログインすると、スクリプトによってキャンバス要素が作成され、背景画像が div のように配置されます。次に、それをぼかして、div タグの上にフェードインさせます。
もう 1 つの方法は、canvas 要素を最初から作成してから、画像を最初から設定することです。
こんな風に背景画像を作っています。
var canvas = document.getElementById('bg_canvas');
var context = canvas.getContext('2d');
var imageObj = new Image();
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
imageObj.onload = function() {
context.drawImage(imageObj, 0, 0);
};
imageObj.src = '2.jpg';
わかりました..それは簡単な部分です..drawImage
関数の高さまたは幅を に設定する方法が必要ですauto
。幅が高さよりも大きい場合、高さを自動に設定します。画像を画面いっぱいに広げたくありません。どうすればいいですか?
今問題番号 2. ユーザーが画面のサイズを変更すると、canvas 要素内の画像のサイズも変更したいと考えています。ぼやけたり、ぼやけなかったり。
私はそれが次のようなものに設定されると仮定します:
$(document).ready(function() {
winResize();
$(window).resize(function() {
winResize());
}
});
function winResize() {
var canvas = document.getElementById('bg_canvas');
var context = canvas.getContext('2d');
var imageObj = new Image();
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
imageObj.onload = function() {
context.drawImage(imageObj, 0, 0, canvas.height, canvas.width);
};
imageObj.src = '2.jpg';
}
今でも、画像の高さまたは幅の自動メカニズムが必要です。
オンラインのどこかで見つけることができるはずなので、ぼかし効果を求めるつもりはありませんが、ぼかしバージョンでフェードインするときに何をすることをお勧めするかを知りたいです. キャンバス要素内でフェードする方法があるはずだと覚えていないので、既存のキャンバスを複製してからぼかしてからフェードインする必要があるかもしれません。