2013-01-18 48 views
0

這一個很困擾我很長一段時間,但我仍然無法找到解決方案。有沒有使用jQuery Mobile動態調整視頻/圖像大小的方法?

有誰知道如何動態調整視頻的尺寸(嵌入從YouTube/VIMEO等)和圖像在網站的移動版本,用jQuery Mobile開發。

我的情景是,網站的移動版本從主網站提取相同數據庫/表格的內容,其中圖像和視頻比手持設備應該大得多。有小費嗎?

+0

要做到真正的調整大小(不結垢)你需要一個服務器端解決方案。 –

+0

圖像不是很大,因爲它們在頁面的內容之內,所以創建相同內容的兩個副本是相當不必要的,只是爲了在移動設備上顯示與較小圖像不同的變體 - 特別是移動設備具有不同的尺寸,你可以水平或垂直預覽頁面,這也應該調整圖像的大小。 –

回答

0

不要混合圖像和視頻調整大小的問題。 建議在服務器端(PHP/Python,C#等)調整圖像大小以適應更小的流量和更快的加載移動網站。 如果視頻來自外部託管(如youtube),則可以在服務器端使用FFMpeg調整大小,然後以最低的質量開始播放。

+0

FFMpeg處理youtube/vimeo/blip等 - 嵌入代碼? –

+0

我建議您不要轉換視頻託管視頻,因爲您的網站流量很大。如果這不是問題,那麼請嘗試瞭解ffserver(FFMpeg的一部分)。 – moddom

0

我寫了這個功能:

/** 
* resize_embedded resizes embedded videos like youtube videos; 
* Examples: 
* - resize_embedded($('youtube_div'), 300, 200); 
* - Fiddle: http://jsfiddle.net/xjxVC/1 
* 
* Parameters: 
* @param jquery the element that contains the embedded media 
* @param number the new width 
* @param number the new height 
* 
*/ 
function resize_embedded(){ 

    // Did we receive 3 correct parameters 
    if(arguments.length === 3 && $(arguments[0]).length && isNumber(arguments[1]) && isNumber(arguments[2])) 
     ; 
    else 
     return 0; 

    // Clone embedded element 
    $c = $(arguments[0]).clone(); 

    // Resize clone (replace width/height of all children who have them) 
    $c 
     .attr('width', arguments[1]) 
     .attr('height', arguments[2]) 
     .children().each(function(){  
      $(this).attr('width') && $(this).attr('width', arguments[1]); 
      $(this).attr('height') && $(this).attr('height', arguments[2]); 
    }) 

    // Replace target with clone 
    $(arguments[0]).replaceWith($c); 
} 

function isNumber(n){ 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 

演示:http://jsfiddle.net/xjxVC/1