有没有一种库/简单的方式来翻转图像?
像这样翻转图像:
AABBCC CCBBAA
AABBCC -> CCBBAA
我不是在寻找动画,只是翻转图像。
我毫不费力地搜索,只发现了一个在MozillaZine上使用SVG的复杂版本,我不确定它是否可以跨浏览器使用。
有没有一种库/简单的方式来翻转图像?
像这样翻转图像:
AABBCC CCBBAA
AABBCC -> CCBBAA
我不是在寻找动画,只是翻转图像。
我毫不费力地搜索,只发现了一个在MozillaZine上使用SVG的复杂版本,我不确定它是否可以跨浏览器使用。
Answers:
以下CSS将在IE和支持CSS转换的现代浏览器中运行。我提供了一个垂直翻转类,以防您可能也想使用它。
.flip-horizontal {
-moz-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
-o-transform: scaleX(-1);
transform: scaleX(-1);
-ms-filter: fliph; /*IE*/
filter: fliph;
}
.flip-vertical {
-moz-transform: scaleY(-1);
-webkit-transform: scaleY(-1);
-o-transform: scaleY(-1);
transform: scaleY(-1);
-ms-filter: flipv; /*IE*/
filter: flipv;
}
-o-transform: scale(-1,0);
和-o-transform: scale(0,-1);
dev.opera.com/articles/view/css3-transitions-and-2d-transforms
-ms-filter: "FlipH"
吗?
看一下许多reflection.js类型库之一,它们非常简单。在IE中,他们将使用并使用“ flipv”过滤器,也有一个“ fliph”过滤器。在其他浏览器内部,它将创建一个canvas标记并使用drawImage。尽管以利亚的答案可能支持相同的浏览器。
只是在尝试修复错误时挖出了这个答案,而建议的答案是正确的,我发现它违反了有关将所有供应商规则包括在内的大多数现代CSS Linting规则。但是,包含-ms-transform规则会导致IE9中出现一个奇怪的错误,即在其中应用过滤器和-ms-transform规则会导致图像翻转并再次翻转回去。
这是我建议的改进,它也支持CSS Lint规则:
.flip-horizontal {
-moz-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
-o-transform: scaleX(-1);
-ms-transform: scaleX(1); /* linting rule fix + IE9 fix */
transform: scaleX(-1);
-ms-filter: fliph;
filter: fliph;
}
.flip-vertical {
-moz-transform: scaleY(-1);
-webkit-transform: scaleY(-1);
-o-transform: scaleY(-1);
-ms-transform: scaleY(1); /* linting rule fix + IE9 fix */
transform: scaleY(-1);
-ms-filter: flipv;
filter: flipv;
}
如果只想翻转背景图像,则可以在翻转的div内的内部元素上使用类。基本上,您是通过main div翻转内部元素,但将每个元素都向后翻转。仍然可以在Firefox中使用。
像这样:
<div id="container" class="flip-horizontal"> <!-- container would have your background image -->
<h3 class="flip-horizontal">Hello There!</h3>
<p class="flip-horizontal">Here is some text</p>
</div>