ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript に基づいたシャッター アニメーション効果の実装は、単純な flas_javascript スキルだけで実現できるわけではありません。

JavaScript に基づいたシャッター アニメーション効果の実装は、単純な flas_javascript スキルだけで実現できるわけではありません。

WBOY
WBOYオリジナル
2016-05-16 15:13:001324ブラウズ

この手のシャッターアニメーションを見ると、全部Flashで実装しているのかと思っていましたが、最近ふと思いつき、jsを使って実装してみようと思いました(フロントエンドの人間ではありませんが)。 .netの人)。コードは実装されていますが、かなり乱雑です。まず写真を撮りましょう:

js アニメーション、私は Flash だけで実現できると思っていました

コードは主に数学的な計算であり、HTML と CSS を組み合わせて Flash のような効果を作成します。

コードの主要部分は以下に掲載されています:

function all(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
if(!books[i][j])return false;
}
}
return true;
}
function resetBooks(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
books[i][j]=false;
}
}
return true;
}
var self=this,timer=null,_iindex= ;
var initdir=[[[,],[,]],[[-,],[,]],[[,-],[-,]],[[,-],[,]],[[,-],[,],[,],[-,]]],dir=initdir[];
var weight=[,,,,];
var initpos=[[{x:,y:-}],[{x:self.columns-,y:-}],[{x:self.columns-,y:self.rows}],[{x:,y:self.rows}],[{x:self.columns/,y:self.rows/}]];
timer=setInterval(function(){
var n=[];
for(var i=;i<self.preDivs.length;i++){
var _div=null,x= ,y=;
for(var j=;j<dir.length;j++){
x=self.preDivs[i].x+dir[j][];
y=self.preDivs[i].y+dir[j][];
if(x>=&&y>=&&x<self.columns&&y<self.rows&&!self.books[y][x]){
self.books[y][x]=true;
_div=self.zzDivStatck[y][x];
n.push({x:x,y:y});
_div.style.backgroundImage = "url(" + self.zzImages[_iindex] + ")";
_div.style.backgroundPositionX = (-x * self.zzDivW) + "px ";
_div.style.backgroundPositionY = (-y * self.zzDivH) + "px";
}
}
}
self.preDivs=n;
if(all(self.books)){
resetBooks(self.books);
var _r=util.randomWeight(weight);
self.preDivs = initpos[_r];
dir=initdir[_r];
_iindex++;
}
if(_iindex>=+self.zzImages.length){
_iindex=;
}
},);

上記のコードは、JavaScript を使用して実装されたブラインド アニメーション効果です。皆さんのお役に立てれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。