有没有办法用jQuery Mobile动态调整视频/图像的大小?

时间:2013-01-18 13:48:12

标签: jquery image mobile video resize

这个人困扰了我很长一段时间,我仍然无法找到解决方案。

有没有人知道如何在jQuery Mobile开发的网站移动版本中动态调整视频尺寸(从youtube / vimeo等中嵌入)和图像。

我的方案是网站的移动版本从与主网站相同的数据库/表格中提取内容,其中图像和视频比手持设备应该大得多。有什么提示吗?

2 个答案:

答案 0 :(得分:0)

不要混合图像和视频大小调整问题。 对于较小的流量和更快的负载移动站点,建议在服务器端(PHP / Python,C#等)进行映像调整大小。 视频可以在服务器端使用FFMpeg调整大小,如果来自外部托管(如youtube)的视频,则以最低质量开始播放。

答案 1 :(得分: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