Safari 9.1 で動作が見られますが、これは Safari のバグのようですが、コードの問題かどうかを確認するためにここに公開しています。
ユーザーの操作で CSS Shapes ポリゴン クリップ パスを移行するサイトがあります。Chrome 50 では問題なく動作しますが、Safari では動作しません。Safari では、別のプラグインが jQuery を使用して問題の要素の CSS 位置をチェックすると、クリップ パスの遷移が停止します。
この動作は、非常に最小限のコードペン(以下に再現) で確認できます。Safari では、緑色の三角形をクリックすると、ページ全体にアニメーションが表示されます。ただし、赤い三角形をクリックすると、唯一の違いは$().css('position')
. Chrome では、両方の三角形が正常に機能します。
これを修正する方法はありますか?
HTML:
<div id="div1"></div>
<div id="div2"></div>
CSS:
body {
position: absolute;
top:0;
bottom:0;
left:0;
right:0;
margin: auto;
}
#div1, #div2 {
position: absolute;
top:0;
width:50%;
height:100%;
transition: clip-path 1s, -webkit-clip-path 1s, width 1s;
}
#div1 {
background: green;
-webkit-clip-path: polygon(0 0, 100% 0, 0 100%, 0 100%);
clip-path: polygon(0 0, 100% 0, 0 100%, 0 100%);
}
#div1.active {
width: 100%;
-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
#div2 {
background: red;
-webkit-clip-path: polygon(0 0, 0 0, 100% 100%, 0 100%);
clip-path: polygon(0 0, 0 0, 100% 100%, 0 100%);
}
#div2.active {
width: 100%;
-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
JS:
$('div').click(function() {
$(this).toggleClass('active');
});
console.log($('#div2').css('position'));