javascript - Safari 浏览器在旋转变换后渲染 SVG 两次

标签 javascript html css sass safari

在浏览器中呈现切换框时,点击标题应该打开/关闭切换内容区域,同时将 SVG 箭头旋转 180 度。这适用于除 Safari 以外的所有浏览器(包括移动设备和桌面设备)。它似乎同时呈现两个版本的 SVG 箭头。

i {
    position: absolute;
    right: 0;
    margin-right: 12px;
}

.active i { 
    transform: rotate(180deg);
    -ms-transform: rotate(180deg); /* IE 9 */
    -webkit-transform: rotate(180deg); /* Safari 3-8 */
}

此 fiddle 中提供的示例代码:https://jsfiddle.net/e6gbdkaL/1/

最佳答案

和SVG转换有点关系。

您需要定义 transform-origin并将旋转应用于 <g>元素。

i > svg > g {
  transform-origin: 50% 50%;
  transform: rotate(0deg);
}
.active i > svg > g {
  transform: rotate(180deg);
}

请参阅此 fiddle 以获得可行的解决方案:https://jsfiddle.net/df75g16k/

关于javascript - Safari 浏览器在旋转变换后渲染 SVG 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137909/

相关文章:

html - 列表中的 IE z-index 相对/绝对错误

html - 在浏览器中播放音频

javascript - 在sensha touch中向类添加变量值

javascript - 当滚动条在 div 底部停留时间过长时,防止 jquery 获取和添加重复数据?

php - 如何将选择表值存储为 php 以在 sql 查询中使用

javascript - page(height,width) 的 CSS 看起来比它实际必须的要小

html - 需要一些帮助来对齐此文本

javascript - CSS Accordion 问题与 JavaScript

javascript - 如何让元素重新出现?

javascript - SignalR JavaScript 未连接