0

画像を含むフォルダーがあり、jQuery を使用してそれらの画像を読み込んでいます。このコード:

$(function () {
    var i=1;
    for (i=1;i<=50;i++){
        var curImg = "blog/wp-content/uploads/" + i + ".jpg";
        var img = new Image();         
        $(img).load(function () {                                 
             $(this).hide();
             $('#loader').removeClass('loading')
                         .append(this);
             $(this).fadeIn();
         }).error(function () {})                            
         .attr('src', ''+curImg+'');                    
    }
});

このフォルダから 50 個の画像をスムーズにロードするのに問題なく動作します。私は2つのことをしようとしています:

  1. 次のようなリンクを追加したいと思い<a href='blog/wp-content/uploads/" + i + ".jpg' class='picLink'>ます。個々の画像に。.wrapここで自分の.load関数で使用しようとしましたが、うまくいきません。これは、リンクのネストを作成するだけです (例: <a><a></a></a>)。
  2. 現在、これは 1 番から始まる最初の 50 枚の写真を検索し、それらを読み込みます。しかし、それ以上の写真が追加された場合、それらは検出されず、最も古いものが常に最初になります。フォルダ内のすべての写真を検索し、最新 (最大番号) を最初に印刷したいと思います。たとえば、4000 枚を超える写真はないと推測できます。このループを逆に実行し、4000 から開始して、その写真が存在するかどうかを確認し、作業を進めて、フォルダーに存在する写真をロードすることは可能でしょうか?

質問が十分に明確であることを願っています。

4

1 に答える 1

0

1.の場合、このフィドルのようなことができます

$(function () {
    var i=1;
    for (i=1;i<=50;i++){
        var curImg = "blog/wp-content/uploads/" + i + ".jpg";
        var img = new Image();         
        $(img).load(function () {                                 
             $(this).hide();
             $('#loader').removeClass('loading')
                         .append($('<a href="'+this.src+'"></a>').append(this));
             $(this).fadeIn();
         }).error(function () {})                            
         .attr('src', ''+curImg+'');                    
    }
});

また、一部の画像は他の画像よりも読み込みに時間がかかるため、順序が正しくない場合があります。

2. サーバー側で画像数を取得し、for ループに次のように挿入する必要があると思います。

for (i=<?php echo $count; ?>; i > <?php echo ($count>50?$count-50:0); ?>; i--){

php を使用していると仮定すると$count、 はフォルダー内の画像の量を表します。

于 2012-05-08T22:47:45.900 に答える