这段代码将过渡时间设置为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;
};
/\d+(\.\d+)?/g
。 - Shannon Hochkins我知道这个回答可能太晚了,但我刚刚整理好:
这句话是关于 IT 技术的。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;
}