请在JQuery中解释$({deg:0})的含义

时间:2015-02-04 12:01:43

标签: jquery

有人可以向我解释CSS rotation cross browser with jquery.animate()$({deg: 0})的含义是什么吗?

e.g。

$({deg: 0}).animate({deg: angle}, {
    duration: 2000,
    step: function(now) {
        // in the step-callback (that is fired each step of the animation),
        // you can use the `now` paramter which contains the current
        // animation-position (`0` up to `angle`)
        $elem.css({
            transform: 'rotate(' + now + 'deg)'
        });
    }
});

如果您能向我展示相关的jQuery官方文档,我将非常感激。

1 个答案:

答案 0 :(得分:6)

它创建一个已断开连接的伪jQuery对象,其属性deg设置为0

您之前可能已经看过:

var newDiv = $('<div>', {class: "hello"});

创建特定的元素类型并在其上设置初始属性。没有指定的元素类型也是一样。

注意:这种类型的对象无法插入DOM,但您可以将许多有用的jQuery方法应用于它。

因此,您可以使用该对象的信息来做这样的酷事:http://jsfiddle.net/TrueBlueAussie/cfmzau1w/

// Create a pseudo jQuery object (not connected to a DOM element)
var po = $({
    deg: 0
});

// This is just the target object we want to change
$elem = $('#result');

// Use animate on the object, to make use of the step callback
po.animate({
    deg: 360
}, {
    duration: 5000,
    step: function (now) {
        // Take the computed value and use it on a real element!
        $elem.css({
            transform: 'rotate(' + now + 'deg)'
        });
    }
});

引用不明显,但在此页http://api.jquery.com/jquery/#jQuery-object上有一个jQuery(object)方法,其中包含:

  

jQuery(对象)
  对象类型:PlainObject
  包装在jQuery对象中的普通对象。

在您的示例中,object是您的匿名对象,因此该示例的 long-hand 伪代码类似于:

var anonymousObj = {
     deg: 0
};
var wrappedInAjQueryObject = jQuery(anonymousObj);
wrappedInAjQueryObject.animate(targetPropertiesAndValues, someSettingsAndCallbacksInAnObject);