diff --git a/server/camlistored/ui/blob_item.css b/server/camlistored/ui/blob_item.css index 1ad2be854..7a2328df8 100644 --- a/server/camlistored/ui/blob_item.css +++ b/server/camlistored/ui/blob_item.css @@ -141,6 +141,9 @@ limitations under the License. top: 5px; transition: opacity 0.2s ease; width: 25px; + + /* To force us into a graphics layer, otherwise we get weird effects as we transition in and out of one during animation. See: https://code.google.com/p/camlistore/issues/detail?id=284. */ + -webkit-transform: scale3d(1, 1, 1); } .cam-blobitem.goog-control-disabled .checkmark { diff --git a/server/camlistored/ui/index.js b/server/camlistored/ui/index.js index 7f01edd57..54ebe44c9 100644 --- a/server/camlistored/ui/index.js +++ b/server/camlistored/ui/index.js @@ -97,8 +97,9 @@ cam.IndexPage.prototype.setTransform_ = function() { var originY = currentHeight * currentScroll / potentialScroll; goog.style.setStyle(this.blobItemContainer_.getElement(), - {'transform': goog.string.subs('scale(%s)', scale), - 'transform-origin': goog.string.subs('right %spx', originY)}); + // The 3d transform is important. See: https://code.google.com/p/camlistore/issues/detail?id=284. + {'transform': goog.string.subs('scale3d(%s, %s, 1)', scale, scale), + 'transform-origin': goog.string.subs('right %spx 0', originY)}); }; cam.IndexPage.prototype.onNavClose = function() {