【发布时间】:2017-11-10 08:53:06
【问题描述】:
我正在寻找专门解决浏览器对svg g element css 转换的支持的答案。
为了说明问题,here 是一个在 Chrome 中工作的代表性示例,但在 Firefox 和 Safari 中仅在两个转换位置之间“跳转”。
实时示例:https://jsbin.com/lepepev/edit?html,output.rect-group 正在转换,以便两个 rects 一起移动:
<style>
.container {
margin: 10em;
width: 100vw;
height: 100vh;
}
.test-rect {
border: 1px solid black;
}
.rect-group {
transition: transform .25s ease-out 0s;
transform: translateY(50px);
}
.rect-group.normal {
transform: translateY(0px);
}
</style>
<svg style="position:absolute;width:0;height:0;" width="0" height="0" version="1.1">
<defs>
<symbol id="test-rect" viewBox="0 0 100 100">
<title>test rect</title>
<g class="rect-group">
<rect x="10" y="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5" />
<rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5" />
</g>
</symbol>
</defs>
</svg>
<div class="container">
<svg class="test-rect">
<use xlink:href="#test-rect"></use>
</svg>
</div>
<!-- .normal is toggled on .rect-group via JS -->
所以,对于 svg g element 的转换只是一个简单的转换。同样,它可以在 Chrome 中使用,但只能在 Firefox 和 Safari 中的两个转换位置之间“跳转”。
我使用的是 Chrome 58、Firefox 54 b14、Safari 10.1.1。
我希望知道:
- 问题识别(实际问题是什么)。
- 存在哪些(如果有)解决方法或应使用替代技术(不仅仅是“使用库 X”)。但是,如果“library X”解决了问题,实际的变通方法/alt-technique 将在“library X”代码中找到,因此仍然值得一提。
【问题讨论】:
标签: google-chrome firefox svg safari css-transitions