2011-01-21 4 views
0

このコードは、私の会社のために更新している不動産のウェブサイトを意味しています。基本的には、プロパティ名、住所などの画像と表があるテーブルがあります。もともと、私はいくつかの理由(オーバーヘッドなどをホスティング)のために、通常のJavascriptにASP.netスイッチでこのWebサイトをコーディングしていました。HTMLテーブルのモーダル部門のJavaScriptプリローダーが新しいimg URLに連結されます

このコードのセクションは、そこにいくつかの異なるチュートリアルから来ています。その1つは、ASP.netモーダルdivイメージ "enlarger"チュートリアルです。これは、いくつかの他のサイトと組み合わせた基礎です。私は彼らの名前などについてはまだコメントしていないが、私は彼らにコードを与えることを計画している。私のコードを投稿する前に、以下のリンクがあります。次のように私のコードは、本質的である


http://archive.aspsnippets.com/post/2009/07/06/Image-Gallery-using-ASPNet-GridView-control.aspx
(私はスタイルのセクションで脂肪や余分な改行をトリミングします):

まずミューダサー・カーン(部分的に関連する)ことにより、そのチュートリアルからモーダルスタイルタグです:

<style> 

    body {margin:0;padding:0;height:100%;} 
    .modal {display: none;position: absolute;top: 0px;left: 0px;background-color:black;z-index:100;opacity: 0.8; filter: alpha(opacity=60);-moz-opacity:0.8;min-height: 100%;} 
    &#divImage{display: none;z-index: 1000;position: fixed;top: 0;left: 0;background-color:White;height: 550px;width: 600px;padding: 3px;border: solid 1px black;} 
    <style> 
Then comes his script, which I may have tweaked here and there: 


<script type="text/javascript"> 

     function LoadDiv(url) { 

      var img = new Image(); 
      var bcgDiv = document.getElementById("divBackground"); 
      var imgDiv = document.getElementById("divImage"); 
      var imgFull = document.getElementById("imgFull"); 
      var imgLoader = document.getElementById("imgLoader"); 

    img.src = url; 
    var tcopy = img.src.slice(0,(img.src.length-4)) + "_big.png"; 
    img.src = tcopy; 

      img.onload = function() { 
       imgFull.src = tcopy 
       imgFull.style.display = "block"; 
       imgLoader.style.display = "none"; 
      }; 

      var width = document.body.clientWidth; 
      if (document.body.clientHeight > document.body.scrollHeight) { 
       bcgDiv.style.height = document.body.clientHeight + "px"; 
      } 
      else { 
       bcgDiv.style.height = document.body.scrollHeight + "px"; 
      } 

      imgDiv.style.left = (width - 650)/2 + "px"; 
      imgDiv.style.top = "20px"; 
      bcgDiv.style.width = "100%"; 
      bcgDiv.style.display = "block"; 
      imgDiv.style.display = "block"; 
      return false; 
     } 
     function HideDiv() { 
      var bcgDiv = document.getElementById("divBackground"); 
      var imgDiv = document.getElementById("divImage"); 
      var imgFull = document.getElementById("imgFull"); 

      imgLoader.style.display = "block"; // I added as it seems to bring back the loader gif 

      if (bcgDiv != null) { 
       bcgDiv.style.display = "none"; 
       imgDiv.style.display = "none"; 
       imgFull.style.display = "none"; 
      } 
     } 
</script> 

今、上記のすべてのスクリプトは、各不動産会社のプロパティの画像上でonClickイベントハンドラで呼び出されます。これは小さなアニメーションgifで画像をプリロードするとうまくいくでしょう。クローズボタンはうまく動作します。複数の画像で動作しますが、画像が既にプリロードされている場合は、ユーザーが写真をクリックした後に再度プレビューされた画像を強制的に再表示して閉じ、divタグを非表示にしてからクリックします同じプリロードされた画像上にある。

このイベントハンドラは次のようになります。

img onClick="return LoadDiv(this.src);" src="http://www.ourcompany.com/images/prop_thumbs/Some_plaza.png" style="min-width:200 px;max-height:150 px;max-width:200 px;" 

私はグローバルなブール値が働くだろうと思ったが、その後、私は実現し、プリロードされており、何かわからtheresのないので、あなたができない場合は、ブールは助けていない可能性があります意味のあるものを前後に渡す。

私は自分の仕事をしてくれるように求めていませんが、正しい方向に提案していただければ幸いです。

よろしくお願いします。

答えて

0

キー値が読み込まれたすべてのイメージの配列を作成できます。例えば。

image_list = {image1:false、image2:true、im​​age3:false};

trueとfalseがロードされているか、ロードされていません。画像をクリックすると、配列が更​​新されます。

image_list [image1] = true;

  • 私の構文は、私を修正したり、私を激しく非難すること自由に感じ、オフになる場合もありますので、これは本当に速いんでした...
0

イェーイ! jhanifenと私が使ったチュートリアルをやった人の助けを借りて(実際に私にメールを送りました)それを考え出しました。私のコードは、以下の(その抜粋が、あなたのアイデアを得るでしょう)です:

images = new Array(30); 

//

images[0]="website/images/prop_thumbs/property1_big.png"; 
    images[1]="website/images/prop_thumbs/property2_big.png"; 
    images[2]="website/images/prop_thumbs/property3_big.png"; 

これは、しばらくの間続く//配列にあるように、各画像を定義する必要があります

imagesLoaded = new Array(30); 

//スタックオーバーフローの人の提案bool値の配列を作成します。ページロード

機能onLoadScript(){ にfalseにそれらをすべて初期化(i = 0; iが< imagesLoaded.lengthを; ++ I) {imagesLoaded [I] = FALSE; }} //上記のonLoadと呼ばれるbodyタグ内

// divタグをロードするためのスクリプトを変更し、以下のとおりです。

function LoadDiv(imgNum) { 

var img = new Image(); 
var bcgDiv = document.getElementById("divBackground"); 
var imgDiv = document.getElementById("divImage"); 
var imgFull = document.getElementById("imgFull"); 
var imgLoader = document.getElementById("imgLoader"); 

img.src = images[imgNum]; 

if(imagesLoaded[imgNum] = true) 
{ // this statement triggers same as onload below! 

      imgFull.src = img.src 
      imgFull.style.display = "block"; 
      imgLoader.style.display = "none"; 

} 

     img.onload = function() { 

      imgFull.src = img.src 
      imgFull.style.display = "block"; 
      imgLoader.style.display = "none"; 
      imagesLoaded[imgNum] = true; 
     }; 

私は変更を除き、文書の残りの部分は同じですLoadDivへのプロパティイメージのonClickイベントハンドラ(およびいくつかの連続番号)。

ご協力いただきありがとうございます。 Mudassar Khanとjhanifenの両方への特別な小道具!

関連する問題