根据窗口大小调整 HTML 中 SVG 图像的大小
Resizing SVG images in HTML according to window size
我有一个项目的徽标,我希望将其放在网页的顶部。徽标采用 SVG 格式,默认大小为 1280x256 像素。我希望在更改窗口大小时调整此图像的大小。我该怎么做?我需要jQuery还是可以用简单的JavaScript来完成?
实际上有很多方法可以实现这一点。选择哪一个取决于你想要什么行为。一些示例(假设您的img
具有 ID image
):
1.CSS使用相对尺寸:
#image { width: 10%; }
图像始终具有屏幕宽度的 10%,并会自动调整。
2.CSS使用媒体查询:
#image { width: 100px; }
@media (min-width: 600px) {
#image { width: 300px; }
}
如果屏幕宽度超过 600 像素,则图像宽度为 300 像素,否则为 100 像素宽。宽度会自动调整,但会"跳"到其新值。
3. j查询:
$(window).resize(function(){
var w = $(window).width();
$("#image").width(w * 0.1);
});
这等效于示例 #1。请注意,您可以根据需要在JS中进行自己的计算,因此此解决方案比CSS更灵活(但可能会使调整大小变慢)。#4也是如此。
4. 普通的JavaScript:
window.onresize = function(event) {
var w = 0;
if (window.innerWidth != null) {
w = window.innerWidth;
}
else if (document.body != null) {
w = document.body.clientWidth;
}
document.getElementById("image").style.width = (w >= 600) ? 300 : 100;
};
这等效于示例 #2。
此外,jQuery 是 JavaScript,但许多人认为它类似于替代方案......jQuery只是一种使JavaScript开发在许多情况下更加舒适的方法(正如你可能在上面的例子中注意到的那样)。;)
相关文章:
- 在轴上旋转SVG图像
- 用图像替换SVG
- 将包含SVG元素的HTML转换为图像文件
- 将SVG下载为PNG图像
- 如何设置SVG路径的样式以拍摄图像
- 无法将包含文本和图像的SVG保存到画布
- 如何在fabricjs中嵌入图像base64将画布转换为SVG
- 如何在d3.js中填充svg圆圈内的图像
- 在内联html img标记中显示带有图像标记的SVG
- 如何在悬停时更改SVG图像的颜色
- Javascript:如何将SVG图像放入数组中
- 将 src 内容动态加载到 SVG 图像
- 根据窗口大小调整 HTML 中 SVG 图像的大小
- 在web浏览器中保存操作过的SVG图像
- SVG具有旋转图像的低性能
- 添加图像与点svg画布
- 正在尝试在SVG标记中显示图像URL
- 使用jquery/javascript将amchart(多个SVG)保存为图像(jpg)
- 在背景图像svg中使用JavaScript
- 下载图表JOINTJS图像|SVG==>带有Javascript的PNG