html - IE 中的图像旋转会导致自动翻译。如何删除翻译?

标签 html css image internet-explorer rotation

我正在尝试为网站实现一个仪表小部件。规范说只允许使用 HTML/CSS,所以我不能使用 JavaScript(不要问我为什么——也许如果有一个真的用 JavaScript 做的简单方法我可以说服元素铅)。

到目前为止,我有一个 div,其背景图像显示了仪表的背面。在这个 div 中是一个旋转的 img,具体取决于 gauge 值。该值使用 PHP 动态注入(inject)到 HTML 中。

仪表在 Safari/FireFox 中运行良好,但在 IE 中会出现问题。如果我向图像添加边框,我就能明白为什么——IE 旋转似乎还包括自动平移,因此指针会偏离中心(请参见下面的屏幕截图)。

那么,问题来了:如何在 IE 中将指针移回仪表的中心?

broken needle rotation in internet explorer

<div style="background: url('genies/gauge.png'); background-repeat: no-repeat; height: 235px; overflow: hidden;">

<img src="genies/gauge-needle.png" 
 style="-moz-transform: rotate(45deg); 
        -o-transform: rotate(45deg); 
        -webkit-transform: rotate(45deg); 
        -ms-transform: rotate(45deg); 
        transform: rotate(45deg); 
        filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678118655, M12=-0.70710678118655,M21=0.70710678118655, M22=0.70710678118655, sizingMethod='auto expand'); zoom: 1;" />

</div>

最佳答案

这里的问题是图像围绕一个您不希望它旋转的点旋转。

您需要将变换原点设置为图像的中心。

例如,您可以使用 -moz-transform-origin , -webkit-transform-origin, -o-transform-origin, -ms-transform-origin, -etc-transform -起源...

查看此页面以获取有关如何在 MSIE 中处理 Matrix 过滤器的信息: https://github.com/heygrady/transform/wiki/correcting-transform-origin-and-translate-in-ie

关于html - IE 中的图像旋转会导致自动翻译。如何删除翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112448/

相关文章:

php - 为什么将图像(url)存储在数据库中[网站]

image - 使用 Matlab 将形状检测为圆形

javascript - 在 Node.js 中调整图像大小而无需纵横比

html - 在 Swift 中将 Unicode 符号或其 XML/HTML 实体转换为其 Unicode 编号

html - 当我关闭浏览器窗口而不是简单地消失时,导航栏中的图像会落在彼此下方。为什么?

javascript - html5 canvas删除垂直/水平线像素值

jquery - 如何测试jquery是否正确加载?

html - 通过css更改微调器的大小

javascript - 如何在 Bootstrap 4 中 Justify-End 仅选择导航项?

css - 如何让 input - strong 和 p 元素在同一行?