これにより遷移時間が 1 秒に設定されるため、次のようになります。
$('#objectID').css('webkit-transition-duration','1s');
私はこれが現在のデュレーション値を返すと仮定しました:
$('#objectID').css('webkit-transition-duration');
しかし、そうではありません。
これにより遷移時間が 1 秒に設定されるため、次のようになります。
$('#objectID').css('webkit-transition-duration','1s');
私はこれが現在のデュレーション値を返すと仮定しました:
$('#objectID').css('webkit-transition-duration');
しかし、そうではありません。
より簡単な答え:
parseFloat(getComputedStyle(targetElement)['transitionDuration'])
試してみてください:
$('#objectID').css('transition-duration','1s');
$('#objectID').css('transition-duration');
function getTransitionProperty(element) {
// Note that in some versions of IE9 it is critical that
// msTransform appear in this list before MozTransform
var properties = [
'transition',
'WebkitTransition',
'msTransition',
'MozTransition',
'OTransition'
];
var p;
while (p = properties.shift()) {
if (typeof element.style[p] != 'undefined') {
return p;
}
}
return false;
}
これにより、すべての主要なブラウザーの遷移値が返されます。
以下は、渡された要素またはセレクターの遷移時間をミリ秒単位で返す jQuery 関数です。
function getTransitionDuration(elementOrSelector){
var $el, durString, isMS, numberStr, numberNum;
$el = $(elementOrSelector);
if($el.length === 0 ){
return false;
}
$el = $($el[0]); // Force just the first item. need more? use .each
durString = $el.css('transition-duration').toLowerCase();
isMS = durString.indexOf("ms") >= 0;
numberStr = durString.match(/\d/);
numberNum = parseInt(numberStr[0], 10);
return isMS ? numberNum : numberNum * 1000;
};
これは、セレクターが複数のアイテムに一致する場合でも、ラップされたセットの最初のアイテムのデュレーションのみを返します。もっといります?これを.eachコールバックで使用します
戻り値:
この答えはおそらく遅すぎることはわかっていますが、私はそれを整理していました:
function getTransitionDuration (el, with_delay){
var style=window.getComputedStyle(el),
duration = style.webkitTransitionDuration,
delay = style.webkitTransitionDelay;
// fix miliseconds vs seconds
duration = (duration.indexOf("ms")>-1) ? parseFloat(duration) : parseFloat(duration)*1000;
delay = (delay.indexOf("ms")>-1) ? parseFloat(delay) : parseFloat(delay)*1000;
if(with_delay) return (duration + delay);
else return duration;
}
getTransitionDuration(el) を呼び出すと、期間の値がミリ秒単位で返されます。getTransitionDuration(el, true) を呼び出すと、期間と遅延がミリ秒単位で返されます。
これは Webkit のみであることに注意してください。すべてのブラウザーに一致するようにプロパティ名を修正する必要があります。
プロパティを取得するときに 100 ミリ秒の遅延が 100.00000149011612 のようなものに変換されるという奇妙なバグも発生しています。