-2

このコードは、Web ページからすべての画像を取り出して、円を描くように回転させます。本当にどんなページも(画像なしで)裸にします。テストに最適な場所は、多くの画像を含む Web サイトです。(例としてGoogle画像)。これらのコードを、たとえばゴーグルなどのWebサイトのURLに配置するだけです。手動で「javascript:」と入力する必要があることに注意してください。

 javascript:R=0;  
  x1=.1; y1=.05;
  x2=.25; y2=.24;
 x3=1.6; y3=.24;
  x4=300; y4=200;
 x5=300; y5=200;
 DI=document.getElementsByTagName("img");
 DIL=DI.length; 
 function A(){for(i=0; i-DIL; i++)//is equal to for(i=0; i < DIL; i++)
 { 
 DIS=DI[ i ].style;
 DIS.position='absolute';
 DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; 
 DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}

R++

}
 setInterval('A()',5); void(0);//u can also use undefined here or u can pass these code to void(all code goes here);
//but u should not pass return false as it is used within a function to exit and return specified value

未定義が返された場合、ブラウザはそれを読み取り、現在のページから移動しません。配置されていない場合、次の空白ページにリダイレクトされます。そのため、必須です。また、式を void(exp here) に渡すこともできます。問題なく評価されますが、メイン心に留めておくべきことは、ブラウザに必要な undefined を常に返すことです。javascript: は http: に似た URI スキームであることを覚えておいてください。したがって、URL ブラウザに配置するアドレスが、存在しない場合でも、そのページに移動することを知っている場合はわかります。 javascript: スキーム、ブラウザは JavaScript コードを実行し、それを新しいページに書き込みます。URI の末尾にある void 演算子は、void (exp)/void exp のように undefined を返します

上記のコードを注意深く見ると、HTML の「img」タグが回転しています。「a」または「p」に置き換えて、画像の代わりにいくつかのリンクまたはテキストが回転するのを見てください。しかし、コードで実際に何が起こっているかを誰か説明できますか?また、「javascript:」キーワードは実際に何をしますか?

ハイパーテキスト ドキュメントの href 属性では、http スキームを使用します。それ以外の場合は、javascript: スキームを使用できます。

4

1 に答える 1

3

注意する必要がある2つの部分があります:

setInterval('A()', 5);

これにより、ミリ秒Aごとに関数が実行されます。5

function A(){
    for(i=0; i-DIL; i++) { 
        DIS = DI[i].style;
        DIS.position = 'absolute';
        DIS.left = (Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; 
        DIS.top = (Math.cos(R*y1+i*y2+y3)*y4+y5)+"px";
    }
    R++;
}

この関数は、見つかったすべての要素を循環し、その位置を絶対値に設定し(これを何度も繰り返す必要はありません)、その値lefttop値を調整して、新しい場所で5ミリ秒ごとにビューポートに再描画します。

各要素が配置される次の場所を見つける数学に関して混乱している場合は、それらの質問に対してまったく異なるサイトがあります。

于 2013-02-06T05:42:49.633 に答える