如何使用 javascript 为移动设备调整网站背景?

Posted

技术标签:

【中文标题】如何使用 javascript 为移动设备调整网站背景?【英文标题】:How to adjust site background with javascript for mobile device? 【发布时间】:2015-12-10 17:50:28 【问题描述】:

我刚刚为我朋友的歌舞表演完成了我的 wordpress 网站。我做了一些 javascript 来自定义背景图像并使每个页面彼此不同。 这是它在我电脑上的样子。 Example of my website on Firefox - Windows 7

我的问题是,说到我的 iPhone,结果真的不一样...... Example on my iPhone using Safari for ios9

如您所见,移动设备上的宽高比真的很难看。 这是我在此页面上用于自定义背景的代码:

<script>
document.body.style.backgroundImage = "url('http://cabarettapisrouge.xyz/wp-content/uploads/2015/11/12235379_10207180605785211_985692315_o-e1447975745789.jpg')"; 
document.body.style.backgroundAttachment = "fixed";
document.body.style.backgroundRepeat = "no-repeat";
document.body.style.backgroundSize= "100% 100%";
</script>

所以,你看到了吗,我在宽度和高度上使用 100% 的比例来调整我的图像,但它在移动设备上不是很好,因为屏幕不同。所以我知道。

有没有办法我可以使用外部 javascript 并对它说“如果在移动设备上,那么就这样显示”?这部分我不太擅长 Javascript...

即使它不是一个外部文件,也许我可以只使用我的代码来使其工作?

无论如何,谢谢你的帮助,我很确定你们都能帮助我!谢谢!

【问题讨论】:

【参考方案1】:

我觉得你可以试试。

    document.body.style.backgroundSize= "cover";

    document.body.style.backgroundSize= "contain";

参考:https://developer.mozilla.org/en-US/docs/Web/CSS/background-size

【讨论】:

这是一个很好的解决方案,谢谢!可悲的是,对于我的网站,它似乎不起作用。使用 Cover,我的图像模糊且太大。使用包含,它不会填满容器。【参考方案2】:

如何在 css 中使用 @media 并根据每个设备或视图加载一个或另一个图像? (请注意,'480px' 是示例,您也可以添加查询来处理横向或纵向视图,或更多分辨率)。

@media (max-width: 480px) and (orientation: landscape)   
        background-image: url('url to smaller image here...')";
    

或者根据设备改变背景样式为:

@media (max-width: 480px) and (orientation: landscape)   
    background-size: 100% auto;

或者在背景图片上尝试 CSS width: 100%; height: auto;

希望有帮助!

【讨论】:

感谢您的回答!可悲的是,第二个解决方案似乎不起作用......我认为我需要做你的第一个解决方案,但很遗憾,因为我需要处理新图像啊......谢谢!

以上是关于如何使用 javascript 为移动设备调整网站背景?的主要内容,如果未能解决你的问题,请参考以下文章

当我将屏幕大小调整为移动设备时,我的网站移动视图在桌面上正确显示隐藏元素,但在我的手机上它们没有隐藏

移动到网站中心(如果可能,在移动设备上自动调整大小)

如何使用 Twitter Bootstrap 使网站适合移动设备?

如何防止移动设备调整大小并使用正确的 css 文件

如何使用 JavaScript 单击 Safari 移动设备上的按钮?

如何调整 JavaScript Fisheye 脚本的放大触发器?