Jquery Wordpress-在不同页面上使用多个可调整大小的背景

Jquery Wordpress-在不同页面上使用多个可调整大小的背景,jquery,iphone,background,resize,width,Jquery,Iphone,Background,Resize,Width,我在这里陷入了困境。 我正在构建一个网站,每个页面上都有一个加载的背景(即使我将其压缩到不到250k,我也在处理超长的加载时间,所有其他图像都加载到每个页面上。我第一次尝试处理这个问题(特别是在iPhone上)我的目标是预缓存或预加载这些背景,但是对于任何类型的无线连接,延迟仍然太长,因此我的目标是为不同的设备加载更小版本的背景。 我希望这里有人能帮我找到一些解决办法 目前,我正在通过一个if(is_page())elseif(is_page())语句加载背景,其中javascript for

我在这里陷入了困境。 我正在构建一个网站,每个页面上都有一个加载的背景(即使我将其压缩到不到250k,我也在处理超长的加载时间,所有其他图像都加载到每个页面上。我第一次尝试处理这个问题(特别是在iPhone上)我的目标是预缓存或预加载这些背景,但是对于任何类型的无线连接,延迟仍然太长,因此我的目标是为不同的设备加载更小版本的背景。 我希望这里有人能帮我找到一些解决办法

目前,我正在通过一个if(is_page())elseif(is_page())语句加载背景,其中javascript for ez-bg resize传递每个页面的图像

<?php
if( is_page('About') ) { $img = 'images/img1.jpg'; }
elseif( is_page('Home') ) { $img = 'images/img2.jpg'; }
elseif( is_page('Page_Name') ) { $img = 'images/img3.jpg'; }
elseif( is_page('Videos') ) { $img = 'images/img4.jpg'; }
else { $img = 'images/img5.jpg'; }
?>
<script type="text/javascript">
$("body").ezBgResize({
    img     : "<?php echo $img; ?>",
    opacity : 1,
    center  : true
});
</script>

$(“正文”).ezBgResize({
img:“”,
不透明度:1,
中锋:对
});
我想做的是包含一些类型的变量
“如果是此页面,则显示此图像,如果是iphone/ipad版本,则显示此图像”

您肯定应该在客户端执行此操作,因为您可以通过Javascript访问实际屏幕大小,而不是执行用户代理嗅探。特别是如果您仍然依赖Javascript作为背景,请使用ezBgResize

您可以检查设备的屏幕分辨率,然后让ezBgResize使用高分辨率或低分辨率版本的图像。请查看和以获取灵感

它可以是这样的:

/* This is an example for just one page, expand to your needs */

// Save the two (or more) different size image file names
var aboutPageBackgrounds = ["image1high.jpg", "image1low.jpg"];

// Check if we are on the about page (assuming an id is set on some element)
if( $("#aboutpage").length ) {
    // Use the high res version by default
    var image = aboutPageBackgrounds[0];

    // Switch to the low res version if the screen is small
    if( screen.width < 600 ) {
        image = aboutPageBackgrounds[1];
    }

    // Call ezBgResize with the resulting image path
    $("body").ezBgResize({
        img     : image,
        opacity : 1,
        center  : true
    });

}
/*这是一个仅用于一页的示例,请根据需要展开*/
//保存两个(或更多)不同大小的图像文件名
var aboutPageBackgrounds=[“image1high.jpg”,“image1low.jpg”];
//检查我们是否在about页面(假设在某个元素上设置了id)
if($(“#约页”).长度){
//默认情况下使用高分辨率版本
var image=aboutPageBackgrounds[0];
//如果屏幕较小,则切换到低分辨率版本
如果(屏幕宽度<600){
图像=大约一个页面背景[1];
}
//使用生成的图像路径调用ezBgResize
$(“正文”).ezBgResize({
img:图像,
不透明度:1,
中锋:对
});
}

您绝对应该在客户端执行此操作,因为您可以通过Javascript访问实际屏幕大小,而不是执行用户代理嗅探。特别是如果您仍然依赖Javascript作为背景,请使用ezBgResize

您可以检查设备的屏幕分辨率,然后让ezBgResize使用高分辨率或低分辨率版本的图像。请查看和以获取灵感

它可以是这样的:

/* This is an example for just one page, expand to your needs */

// Save the two (or more) different size image file names
var aboutPageBackgrounds = ["image1high.jpg", "image1low.jpg"];

// Check if we are on the about page (assuming an id is set on some element)
if( $("#aboutpage").length ) {
    // Use the high res version by default
    var image = aboutPageBackgrounds[0];

    // Switch to the low res version if the screen is small
    if( screen.width < 600 ) {
        image = aboutPageBackgrounds[1];
    }

    // Call ezBgResize with the resulting image path
    $("body").ezBgResize({
        img     : image,
        opacity : 1,
        center  : true
    });

}
/*这是一个仅用于一页的示例,请根据需要展开*/
//保存两个(或更多)不同大小的图像文件名
var aboutPageBackgrounds=[“image1high.jpg”,“image1low.jpg”];
//检查我们是否在about页面(假设在某个元素上设置了id)
if($(“#约页”).长度){
//默认情况下使用高分辨率版本
var image=aboutPageBackgrounds[0];
//如果屏幕较小,则切换到低分辨率版本
如果(屏幕宽度<600){
图像=大约一个页面背景[1];
}
//使用生成的图像路径调用ezBgResize
$(“正文”).ezBgResize({
img:图像,
不透明度:1,
中锋:对
});
}

首先,图像是缓存的?Gabriel,我可以通过将它们包含在主页上来缓存它们,但是有这么多的图像(以及这些图像之上的许多其他PNG图像)我们谈论的可能是8-12MB的预缓存,我不能假设人们会停留在主页上,希望所有内容都能被缓存,同样在iphone上,我只是不想让他们下载这么多数据,我觉得通过“if is iphone/ipad”语句来减少文件大小是节省大量下载时间的最佳解决方案。@user1056130您在这里有很多选项,或者,您可以使用php
$ipad=(bool)strpos($\u SERVER['HTTP\u USER\u AGENT','ipad');
/
$iPod=(bool)strpos($\u SERVER['HTTP\u USER\u AGENT','iPod');
,或者,您可以使用javascript,
var ipad=navigator.userAgent.match(/ipad/i);
/
var iPod=navigator.userAgent.match(/iPod/i);
CSS媒体查询不是一个好办法吗?它们允许比服务器端用户代理嗅探更通用的调整。@哦,感谢您的参考,我将尝试一些尝试并报告成功。首先,图像被缓存?Gabriel,我可以通过将它们包含在主页上来缓存它们,但是有这么多图像,(还有很多其他PNG的图片)我们谈论的可能是8-12MB的预缓存,我不能假设人们会停留在主页上,希望所有内容都能被缓存,同样在iphone上,我只是不想让他们下载这么多数据,我觉得通过“if is iphone/ipad”语句来减少文件大小是节省大量下载时间的最佳解决方案。@user1056130您在这里有很多选项,或者,您可以使用php
$ipad=(bool)strpos($\u SERVER['HTTP\u USER\u AGENT','ipad');
/
$iPod=(bool)strpos($\u SERVER['HTTP\u USER\u AGENT','iPod');
,或者,您可以使用javascript,
var ipad=navigator.userAgent.match(/ipad/i);
/
var iPod=navigator.userAgent.match(/iPod/i)
CSS媒体查询不是一种好办法吗?它们允许进行比服务器端用户代理嗅探更通用的调整。@Ohgodwhy感谢您的参考,我将尝试一些尝试并报告成功。最佳解决方案是@pixelistik!对所有这些页面运行so man var有点繁琐,但仍然和我的php一样费力if/then’s.Best solution@pixelistik!对所有这些页面运行so man var有点乏味,但仍然和我的php if/then一样费力。