2

イメージのサイズを変更し、jqueryサイクルプラグイン(http://www.jquery.malsup.com/cycle/)を実行しています。私はプリローダープラグインも使用しています。Jquery Cycle PluginとIE - IEでレンダリング/リサイズが正しく行われていないイメージを事前ロードしてサイズ変更しています。

GOAL

目的は、コンテナの側面に比べてアスペクト比に応じて(CMSデータベースからソース)画像の数、再サイズ高さまたはそれぞれの幅のいずれかを、(取ることです比)をコンテナ内に収め、コンテナ内に中心を置き、スライドショー(プロジェクト画像)を実行します。

ISSUE

イメージがロードされている前サイクルのスライドショーは(画像はショーの前にイメージが、それは3枚のスライドをサイクルをすることができますので、あまりにも大きいです)を実行します。 iamgesがロードされるまで待機して、ロード中にgifを表示したい。

ここで、再サイズをプリロードし、サイクルスライドショーを実行するために実行されているHTMLとjQueryコードイムです:

<div id="slideshow" class="single_project_images pics"> 
    <img src="/components/com_sedarticles/assets/1333588925" /> 
    <img src="/components/com_sedarticles/assets/1333852906" /> 
    <img src="/components/com_sedarticles/assets/1333852914" /> 
</div> 

スクリプト:

$(document).ready(function() { 
    $(".single_project_images img").each(function(){ 
     $(this).imagesLoaded(function(){ 
      var w = $(this).width(); 
      var h = $(this).height(); 
      if((w/h) < 0.85){ 
       $(this).height("541px"); 
       $(this).css("margin-left", parseInt((460 - $(this).width())/2)+"px"); 
      }else{ 
       $(this).width("460px"); 
       $(this).css("margin-top", parseInt((541 - $(this).height())/2)+"px"); 
      } 
     }); 
}); 

    $('#slideshow').cycle({ 
     speed: 1000, 
     timeout: 5000, 
     pager: '#nav' 
    }); 
}); 
+0

すなわちのバージョンをあなたがしている私はIE8であなたのサイトをチェックし、その良い取り組んでいます。 – Fresheyeball

答えて

0

理由画像2 & 3はそうではありません表示されるのは、margin-topがCSSでは1000pxに設定されていて、調整されていないのは、これら2つの画像がjのif条件を満たすものではないためです。

イメージを読み込む前にスライドショーを開始しないようにするには、読み込まれた回数と呼び出しサイクルがすべて完了したらそれを追跡する必要があります。このような

何か:。

var totalimages = 6, imagesloaded = 0; 

$('img').each(function() { 

    this.onload = function() { 
     imagesloaded++; 
     if(imagesloaded === totalimages){ 
      //call cycle plugin 
     } 
    } 

}); 
関連する問題