我创建了一个在桌面上运行良好的网站,但在iPhone和iPad上没有显示背景图片。
我尝试删除选择图像的php脚本并重新编写代码以使用javascript来设置背景,在这种情况下,背景显示正确。
这是选择图像的php代码:
<?php
//if doesn't exist, open the session
if(!isset($_SESSION))
{
session_start();
}
//set coockie
setcookie("allweb","connected", time()+3600);
//if doesn' exist yet, I create a new array
if(!isset($_SESSION['arrayImage'])){
$arrayImage = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
}else{// else I get from sessiom
$arrayImage = $_SESSION['arrayImage'];
}
//if already exist variable $picture, increment it
if(isset($_SESSION['picture']) && isset($arrayImage)){
$picture=$_SESSION['picture'];
$picture = $picture + 1;
$_SESSION['picture'] = $picture;//save picture
}else{// else I create it
$picture = 1;
$_SESSION['picture'] = $picture;// save it
shuffle($arrayImage);// I shuffle the array
$_SESSION['arrayImage'] = $arrayImage;//save array to the session
}
?>
在php页面中,我在样式标签之间有这段代码:
<style type="text/css">
<?php
if($picture < 15){//if I'm not out fo bound I continue
echo 'body {background-image:url("images/bg'.$arrayImage[$picture].'hq.jpg");}';
}
else{// else I set picture to default value and restar the loop.
$picture = 0;
$_SESSION['picture'] = $picture;// save it
echo 'body {background-image:url("images/bg'.$arrayImage[$picture].'hq.jpg");}';
}
?>
</style>
问题是图像没有立即显示,但我必须缩放页面然后才会出现。
答案 0 :(得分:0)
我假设您已检查输出并且它是正确的。 如果是这种情况,请尝试从后台网址中删除引号:
body {background-image:url("images/bg'.$arrayImage[$picture].'hq.jpg");}
到
body {background-image:url(images/bg'.$arrayImage[$picture].'hq.jpg);}
顺便说一句,使用它们绝对有效,但这种情况非常罕见,iOS的Webkit渲染器有时甚至会因为有效的标记而产生一些非常错误的结果。不幸的是,它与Android的Webkit渲染器或任何x86 Webkit引擎不同,因此如果没有非常昂贵的Apple设备,这些问题就无法重现和深入检查。
使用JS完成的CSS修改,特别是框架(例如jQuery)的修改通常会在需要时智能地解析,从而导致语法更正,这就是为什么这些引号是我的主要嫌疑人。