Raptor
Raptor

Reputation: 54212

qooxdoo : Rotate Button along its center

I have a qx.ui.form.Button. I would like it to rotate 180 degree ( i.e. upside down ) along its center when I click the button. (I'm working on qx.Desktop )

var btn = new qx.ui.form.Button(null, "myproject/button.png");
btn.addListener("click", function () {
  // which function should I use ?
});

The rotation should have animation, i.e. rotate clockwise.

Upvotes: 1

Views: 260

Answers (1)

Martin Wittemann
Martin Wittemann

Reputation: 2116

qooxdoo does not have transformations build in the widget layer itself but it offers a way to animate / rotate dom elements. So you have to get the container element of the button and start a animation on that:

var el = btn.getContainerElement().getDomElement();
qx.bom.element.Animation.animate(el, {
  duration: 1000, timing: "ease", keep: 100, keyFrames : {
    0: {rotate: "0deg"},       // ["0deg"] for flipping effect
    100 : {rotate : "180deg"}  // ["180deg"] for flipping effect
  }
});

Check out the documentation of the animate function to see how this code works: http://demo.qooxdoo.org/current/apiviewer/#qx.bom.element.Animation~animate

And here is a working playground sample.

Upvotes: 4

Related Questions