HTML 带有img标记和JavaScript的SVG图像,用于不支持的浏览器。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML 带有img标记和JavaScript的SVG图像,用于不支持的浏览器。相关的知识,希望对你有一定的参考价值。

<img src="images/logo.svg"
     onerror="this.removeAttribute('onerror');
              this.src='images/logo.png'" 
     alt="Kreaninw Studio Logo"
/>

在将图像分配给 img 标签之前使用 javascript 调整图像大小

【中文标题】在将图像分配给 img 标签之前使用 javascript 调整图像大小【英文标题】:Resize images with javascript before assign them to an img tag 【发布时间】:2011-09-04 05:58:44 【问题描述】:

我对 HTML 和 CSS 开发非常陌生。

我有一个带有 img 标签的 HTML 页面。该标签将包含一些图像。这些图像有不同的大小。我使用 CSS 为 img 标签设置了宽度和高度。

所有图片都将使用 JavaScript 显示。

在将图像分配给IMG 标记之前,我是否需要使用 JavaScript 调整图像大小? 也许,我不需要这样做,因为我使用 CSS 设置了 IMG 大小。比例会被限制?

对不起我的英语。

【问题讨论】:

【参考方案1】:

您应该在服务器端执行此操作。带有管理脚本。您可以在上传时创建原始图像的版本,然后这些图像可以安全地被 HTML/CSS 端使用。

这不是在客户端执行的任务。基本上,您在这里所做的是下载一个大图像(大量数据),然后将其缩小以创建一个较小的图像。所以你在浪费客户端的带宽和服务器的带宽。

如果绝对没有其他可能性,并且您有一个固定区域(例如 640x480),那么您可以通过以下方式在保持纵横比的情况下实现基本裁剪:

HTML:

<div id="wrapper"><img src="my.jpg"></div>

CSS:

#wrapper 
    width: 640px;
    height: 480px;
    line-height: 480px;


#wrapper img 
    width: 640px;

【讨论】:

确实最好在服务器上执行此操作。发送大图,让客户端显示小图,是一种浪费。如果您在服务器上调整它的大小,您可以缓存调整大小的图像并且您将需要更少的带宽来发送图像。两者都是性能提升。 这对任何想要这样做的人来说都是一个很好的建议。但我将在 WebWorks Playbook 应用程序上使用它。【参考方案2】:

如果您使用 css 设置了高度和宽度,则不会保持纵横比。但是,如果您使用 html img 标签指定任何一个属性,则将保持纵横比。

【讨论】:

感谢您的回答。如何在将图像分配给IMG 标签之前调整其大小? 要保持纵横比吗?如果是,那么您希望解决什么问题?高度还是宽度? @Coding-Freak:我有一个 img 标签大小 = (260, 260)。我必须适应这种尺寸的任何图像保持纵横比。 那么你需要计算高和宽的较大值,如果高大于宽,则给img标签分配height的属性,只有260的值,反之反之亦然。 JQuery 不是灵丹妙药。您必须仔细考虑是否将其带入您的工具链。

以上是关于HTML 带有img标记和JavaScript的SVG图像,用于不支持的浏览器。的主要内容,如果未能解决你的问题,请参考以下文章

在将图像分配给 img 标签之前使用 javascript 调整图像大小

使用 MFMailComposeViewController 类从 iPhone 应用程序发送带有 IMG 标记的 HTML 电子邮件

使用javascript创建带有图像标签的数组

使用带有 JavaScript 的离散标记检查元素是不是已关闭

通过 PHP 循环动态添加 <img> 标记,通过在每个循环上调用 JavaScript 函数

Javascript:添加 HTML 代码,包括 img src 和 href's