2015-05-21 12 views
1

我在同一頁面的相同位置上有很多圖片。有些組具有opacity = 0(div),並在想要顯示一個時設置opacity = 1當div opacity = 1時加載一段代碼

但是,顯然,所有的圖像加載在開始(93Mb)。

所以,我想在請求中加載圖像。加載div的內容和包含的圖像。

我開始用這樣的:

if($('#id_of_div').css('opacity') == 1) { 
    loadTheCode(); 
} 

然後我發現這個(load html after opacity = 0)2年前由羅裏McCrossan寫:

function cargarContenido(pagina) { 
    $('#content').animate(
     { "opacity": "0" }, 
     function() { 
      $("#loadimage").show(); // show a loading image 
      // load content when opacity = 0 animation finished 
      $("#content").load(
       pagina, 
       function() { 
        $("#loadimage").hide(); // hide a loading image 
        // make opacity = 1 when content has been loaded 
        $('#content').animate({ "opacity": "1" }); 
       } 
      ) 
     } 
    ); 
} 

但是,我不知道如何做到這一點的jQuery函數工作,如何實現它,以及如何重寫所需的代碼。

當代碼加載時,圖像也加載?

PHP可以執行MySQL請求嗎?

我很遺憾:S

非常感謝!

+0

你怎麼設置不透明度1到組中的圖像?你有一些按鈕,菜單?你能給我們一個你使用的HTML代碼片段嗎? – skobaljic

+0

你想調用一些函數,如果該div有不透明度1? –

回答

0

jQuery作爲框架通常具有函數調用加上callback的結構,只要原始函數被成功執行就被調用。回調是jQuery中使用非常廣泛的功能,可以對異步事件和動作進行巨大控制。

所以代碼執行以下操作,

  1. 動畫處理由其opacity屬性移動到0。contentDOM元件由於未指定持續時間是默認400ms的(這可能是一個第二論據)。
  2. 接下來是回調函數。因此在jQuery動畫opacity之後,在顯示加載佔位符(loadimage)的位置觸發回調函數。
  3. ​​函數似乎調用存儲在變量pagina中的URL。 load事件成功執行後,調用​​的另一個回調函數。
  4. 此例程現在填充由content ID標識的DOM元素的innerHTML
  5. 加載佔位符圖像被隱藏,並且content再次在400ms中變爲不透明度1。

因此,您可以在您的服務器上調用您創建的另一個端點,僅返回部分頁面內容(可能是內部的API)。該API將在內部根據數據的某些有效負載進行任何需要完成的數據庫查詢。 (請注意,您也可以通過​​呼叫發送一些有效載荷。)

檢查單證這裏: .load().animate().show()