私は、rotateX を変換する css プロパティとアニメーション用のプラグインを持っていますが、Opera では動作しません。理由を知っている人はいますか?
// css rotateX transformation plugin
(function($) {
function getTransformProperty(element) {
var properties = ['transform', 'WebkitTransform',
'MozTransform', 'msTransform',
'OTransform'];
var p;
while (p = properties.shift()) {
if (element.style[p] !== undefined) {
return p;
}
}
return false;
}
var property = getTransformProperty(document.createElement('div'));
if (property) {
$.cssHooks['rotateX'] = {
get: function(elem, computed, extra){
return elem.style[property].replace(/.*rotateX\((.*)deg\).*/, '$1');
},
set: function(elem, value){
value = parseInt(value);
$(elem).data('roateX', value);
if (elem.style[property].match(/rotateX/)) {
var rotation = value == 0 ? '' : 'rotateX(' + value%360 + 'deg)';
elem.style[property] = elem.style[property].replace(/rotateX\([0-9]+deg\)/, rotation);
} else {
elem.style[property] += 'rotateX(' + value%360 + 'deg)';
}
}
};
$.fx.step['rotateX'] = function(fx){
$.cssHooks['rotateX'].set(fx.elem, fx.now);
};
}
})(jQuery);
getTransformProperty は常に配列から最初の値を返すようになっています。
jsfiddle . (回転はクリックで変わるはずです)。