このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

web帳

記事詳細

2015.07.28

Google Chrome v.44~ -webkit-transform → transformになってた。対応のまとめ。

「あれ。動かなくなっている。。」

数日前の出来事でした。

なんでだろう。。

と、chromeのバージョンアップに伴って、不具合が出始めたのもあって調べて見ると、

event.propertyName で取得できる「-webkit-transform」が → 「transform」になっているでは!

うはは。

-webkit-transform → transform と変更になって色々と不具合が出始めたので、フロント側の対応をまとめました。

CSS の対応

transformとかtransition系compassの@includeを利用していたので問題は特になかったのですが、

compassの古いバージョンを使っているのもあって、animationの@includeがない。。

[code]-webkit-animation: anime-name 0.2s infinite;[/code]

[code]@include animation(anime-name 0.2s infinite);[/code]

としたい。。。

と、いいのがありました ><

こちら、

https://github.com/ericam/compass-animation

https://github.com/ericam/compass-animation/blob/master/stylesheets/animation/_core.scss

もう、ナイスです!

https://github.com/ericam/compass-animation/blob/master/stylesheets/animation/_shared.scss

こちらも追加して、既存の_mixin.scssに追加。

サクッと置換

[code]-webkit-animation:.(.*)\; [/code]

[code]@include animation($1); [/code]

解決。

JavaScriptの対応

もちろんJavaScriptの方も影響が出ますよね。。

webkitTransitionEnd やら webkitAnimationEndで、結構イベント取得している。。。

Utilを追加致しました。

https://github.com/creatorish/support-util

ですが、ここのあたりとか

https://github.com/creatorish/support-util/blob/master/support-util.js#L42

[code]vendor.transitionend = "webkitTransitionEnd";[/code]

決め打ちしちゃっていますので、このままではまずい。。

ということで、

http://davidwalsh.name/css-animation-callback

https://jonsuh.com/blog/detect-the-end-of-css-animations-and-transitions-with-javascript/

こちら等を参考に、イベント名を取得しました。

そうそう、webkitTransitionEnd等、直接取得出来ないので、ダミーのelement生成するこの方法は上手いですね!

で、こんな感じにマージを行い、

[gist id=a1093f2f1b4533cf3f7a]

globalオブジェクトのUtilにadd。

deviceもいい感じにまとまっていましたので追加。

TransitionEnd、AnimationEnd、それぞれ、イベント名を取得することが出来ました。

これで、同じChromeでも、バージョン違いで、「animationend」「webkitAnimationEnd」となるのを吸収いたしました。

参考になればとー。

  • RSSを登録する

  • follow us in feedly

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、港区六本木で活動中。

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。