javascript - 带有 JS 的响应式/自适应 Web 的图像

标签 javascript css image media-queries placement

我正在为移动设备转换一个网站。如果我的代码结构如下,想知道用于为移动设备用户提供第二组图像的最佳实践吗?我已经在使用媒体查询为较小的设备提供不同的布局,并希望向移动用户提供第二组较小的图像。

            <div class="main_view">
                <div class="window">    
                    <div class="image_reel">
                        <a href=""><img src="pics/1.jpg" alt="" /></a>
                        <a href=""><img src="pics/2.jpg" alt="" /></a>
                    </div>
                </div>
                <div class="paging">
                    <a href="#" rel="1">1</a>
                    <a href="#" rel="2">2</a>
                </div>
            </div>

这个 html 引用了创建“图像 slider ”效果的 Javascript,类似于建议的 Here。 .该站点不必提供很多图像。我宁愿不重新设计整个站点以使用 css sprites 和背景图像。

我可以向仅使用移动设备的用户提供多组图像的最佳/最高效的浏览器方式是什么?例子赞赏。

谢谢你。

最佳答案

一种方法是将所有图像引用放在 CSS 中,并使用媒体查询来获取一组不同的 CSS 规则,这些规则指定较小的图像。您可以像这样将所有图像放在 CSS 中:

<a href=""><img id="img1" src="blank.gif" height="400" width="600"></a>

blank.gif 是一个 1x1 像素的透明 gif(完全不可见),缩放到图像标签中的高度/宽度。它很小,很容易被浏览器缓存。

然后,在你的常规屏幕 CSS 中,你有这个:
#img1 {background: transparent url(pics/1.jpg) no-repeat;}

然后在由媒体查询指定的小屏幕 CSS 中,您有:
#img1 {background: transparent url(pics/1-small.jpg) no-repeat;}

使用这种 CSS 机制的一个显着优势是您不必加载一组较大的图像,然后在事后将它们更改为较小的图像。由于浏览器在解析 HTML 之前会遇到小型设备的媒体查询 CSS 样式表,因此它只会加载小图像。任何基于 javascript 的解决方案都必须等待 DOM 加载后才能“修补”正确的图像。

关于javascript - 带有 JS 的响应式/自适应 Web 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782577/

相关文章:

r - ggplot to png - 自动拉伸(stretch)图像

javascript - 日语字符的字符串比较

javascript - Bootstrap datetimepicker 未出现在正确的位置

javascript - 如何使用 JavaScript 上传嵌入图像?

Java FX 2 CSS 伪类

css - 包装我的宽度和居中标记

javascript - Javascript 中的点击事件计数器

javascript - 寻找一个正则表达式来解析JS的参数字符串

javascript - 如何使用 Electron 运行 Aurelia 应用程序?

javascript - 将超链接从用户(文本)转换为图像