我有一个使用jQuery Mobile运行的手机网站。我想为非视网膜(没有高像素密度的设备)设备制作标准图像,但希望用高像素密度设备上的视网膜(高像素密度)图像代替原始图像大小的2倍。我发现这篇文章在这里:http://flowz.com/2010/07/css-image-replacement-for-iphone-4-high-dpi-retina-display/jQuery Mobile - CSS Retina图像替换
我对jQuery的执行查找图像与class="replace-2x"
,并在与@2x
添加到文件名相同的路径替换一个标准的图像。因此logo.png
将在Retina设备上替换为[email protected]
。我的jQuery看起来是这样的:
function highdpi_init() {
if(jQuery('.replace-2x').css('font-size') == "1px") {
var els = jQuery(".replace-2x").get();
for(var i = 0; i < els.length; i++) {
var src = els[i].src
src = src.replace(".png", "@2x.png");
els[i].src = src;
}
}
}
jQuery(document).ready(function() {
highdpi_init();
});
页面加载但是,此功能不会被调用或工作(一个或其他),所以我不知道我是否需要像$(".page").live('pageinit', function() {
代替或者是什么使该函数在页面加载时触发或“工作”?帮帮我?? :)
尝试使用inbuild'jQuery(“。replace-2x”)。attr(“src”,newImageName)',以减少错误的来源。 – devsnd 2012-04-05 13:24:49
你能解释一下吗?我不确定你的意思,或者把它放在哪里? – adamdehaven 2012-04-05 13:28:31
基本上,@twall建议的是操纵JQuery对象而不是DOM元素。我将在下面添加我的答案,因为评论部分不够大。 – saluce 2012-04-05 13:38:11