これが本当に必要だと思います。幅を設定するたびに高さを変更してください。$.cssHooks
既存のプロパティで機能することを目的としています。http://jsfiddle.net/CzkQ8/11/
$.cssHooks.width = {
set: function(elem, value) {
elem.style.width = elem.style.height = value;
}
};
$('#test').click(function() {
$(this).animate({
width: 100
}, 'slow');
});
あなたの例がうまくいかない理由は、animateが$.css('test', value)
繰り返し呼び出していないためです。$.css('height', value)
$.cssHooks
電話をかけるたびに電話がかかってきます。$.css(propName, value)
ただし、animateは電話$.css('test', value)
をかけないため、自分で電話をかけると機能し$.css('test', 1000)
ます。
@clyfish
あなたの質問に対するあなたの更新は、あなたがしていることをする正しい方法ではありません。あなたがしようとしている
カスタムプロパティをアニメーション化するためのサポートをtest
追加し、呼び出されるたびに呼び出されるフックを追加し$.css('test')
ます
これはあなたが本当に持っているべきものですhttp://jsfiddle.net/CzkQ8/14/
$.cssHooks.test = {
get: function(elem) {
return $(elem).height();
},
set: function(elem, value) {
$(elem).height(value);
}
};
$.fx.step.test = function(fx) {
// No need to call the hook itself. A step function is supposed to call
// $.css() and that will in turn call the hook
$(fx.elem).css('test', fx.now + fx.unit);
};
$('#test').click(function() {
$(this).animate({
width: 100,
test: 100
}, 'slow');
});
私があなたに見せようとしていることをあなたが理解してくれることを願っています。