(function makeDiv(){
var divsize = ((Math.random()*100) + 50).toFixed();
var color = '#'+ Math.round(0xffffff * Math.random()).toString(16);
$newdiv = $('<div/>').css({
'width':divsize+'px',
'height':divsize+'px',
'background-color': color
});
var posx = (Math.random() * ($(document).width() - divsize)).toFixed();
var posy = (Math.random() * ($(document).height() - divsize)).toFixed();
$newdiv.css({
'position':'absolute',
'left':posx+'px',
'top':posy+'px',
'display':'none'
}).appendTo( 'body' ).fadeIn(700).delay(3500).fadeOut(300, function(){
$(this).remove();
makeDiv();
});
})();
フィドル: http://jsfiddle.net/redler/QcUPk/8/
デザインのモックアップ: http://i.imgur.com/D4mhXPZ.jpg
見つけたこのコードをいじってみましたが、最終的には解体して壊してしまいます。ある例では、反復ごとにオブジェクトを 2 倍にするコードがあり、PC がクラッシュしそうになりました。
ここでいくつかのことが起こっている必要があります。
これらのオブジェクトのうち少なくとも 8 つが、この表示と非表示の動作を同時に実行し、互いに少しずらしてオーバーラップする必要があります (centerOffset?)。表示される各正方形は、まだ残っている前の画像の前にある必要があります。
オブジェクトは色付きの四角形ではなく、データベース (製品の在庫) からランダムに呼び出された画像である必要があります。
写真のいずれかにマウスオーバーすると、プロセスが一時停止し、マウスをその上に置いている間、そのオブジェクトが前面に表示され、その部分に関するテキストが表示されます。それをクリックすると、アイテム ページに移動します。
注: ランダムなサイズ変更要素は便利ですが、背の高い画像や幅の広い画像などがあります。それを処理する方法がわかりません。