2

我在 :after 伪元素中有一个元素。单击时,它将以平滑过渡的方式旋转。

这是我的代码笔http://codepen.io/maxwbailey/pen/ABgJq - 这适用于 Mac 上的 Chrome、Firefox 和 Opera,但不适用于 Safari。

我的代码...

HTML

<div class="expand"></div>

CSS

.expand:after {
  content:"";
  display:block;
  width:200px;
  height:200px;
  background-color:red;
  cursor:pointer;
  -webkit-transition: -webkit-transform 1s ease;
  -moz-transition: -moz-transform 1s ease;
  transition: transform 1s ease;
} 

.expanded:after {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

jQuery

$('.expand').click(function(e) {
    $(this).toggleClass('expanded');
});

想知道我做错了什么。

我在这个网站上看到过,它在 Safari http://www.barrelny.com/blog/中运行良好(单击“按类别查看”下拉菜单以查看箭头随着过渡而旋转。我在这里意识到他们不使用一个伪选择器,但是有没有办法用一个伪类来做到这一点?因为它在其他浏览器中工作,而不是 Safari?

此外,这需要在 :after 中,因为我给出的示例是问题的简化版本

4

1 回答 1

5

伪元素的过渡是一个正在慢慢进入浏览器的修复程序。

我正在运行最新的 safari beta:v6.1 (8537.54.1) - 它对我来说运行良好。看起来你很快就会看到修复的土地。

CSS-Tricks 有一篇文章正在更新为修复登陆:CSS 生成内容上的过渡和动画

它目前显示为不支持 Safari 6.0.2 及以下版本:错误报告

于 2013-08-18T15:37:54.490 回答