54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
goog.provide("goog.style.transition");
|
|
goog.provide("goog.style.transition.Css3Property");
|
|
goog.require("goog.asserts");
|
|
goog.require("goog.dom");
|
|
goog.require("goog.dom.TagName");
|
|
goog.require("goog.dom.safe");
|
|
goog.require("goog.dom.vendor");
|
|
goog.require("goog.functions");
|
|
goog.require("goog.html.SafeHtml");
|
|
goog.require("goog.style");
|
|
goog.require("goog.userAgent");
|
|
goog.style.transition.Css3Property;
|
|
goog.style.transition.set = function(element, properties) {
|
|
if (!Array.isArray(properties)) {
|
|
properties = [properties];
|
|
}
|
|
goog.asserts.assert(properties.length > 0, "At least one Css3Property should be specified.");
|
|
var values = properties.map(function(p) {
|
|
if (typeof p === "string") {
|
|
return p;
|
|
} else {
|
|
goog.asserts.assertObject(p, "Expected css3 property to be an object.");
|
|
var propString = p.property + " " + p.duration + "s " + p.timing + " " + p.delay + "s";
|
|
goog.asserts.assert(p.property && typeof p.duration === "number" && p.timing && typeof p.delay === "number", "Unexpected css3 property value: %s", propString);
|
|
return propString;
|
|
}
|
|
});
|
|
goog.style.transition.setPropertyValue_(element, values.join(","));
|
|
};
|
|
goog.style.transition.removeAll = function(element) {
|
|
goog.style.transition.setPropertyValue_(element, "");
|
|
};
|
|
goog.style.transition.isSupported = goog.functions.cacheReturnValue(function() {
|
|
if (goog.userAgent.IE) {
|
|
return true;
|
|
}
|
|
var el = goog.dom.createElement(goog.dom.TagName.DIV);
|
|
var transition = "opacity 1s linear";
|
|
var vendorPrefix = goog.dom.vendor.getVendorPrefix();
|
|
var style = {"transition":transition};
|
|
if (vendorPrefix) {
|
|
style[vendorPrefix + "-transition"] = transition;
|
|
}
|
|
goog.dom.safe.setInnerHtml(el, goog.html.SafeHtml.create("div", {"style":style}));
|
|
var testElement = el.firstChild;
|
|
goog.asserts.assert(testElement.nodeType == Node.ELEMENT_NODE);
|
|
return goog.style.getStyle(testElement, "transition") != "";
|
|
});
|
|
goog.style.transition.setPropertyValue_ = function(element, transitionValue) {
|
|
goog.style.setStyle(element, "transition", transitionValue);
|
|
};
|
|
|
|
//# sourceMappingURL=goog.style.transition.js.map
|