如何实现CSS3 GWT TransitionEnd监听器
问题描述:
我想使用transitionend Mozilla CSS3属性在CSS3转换完成时触发事件。我知道我可以使用定时器来实现类似的功能,但本着CSS3动画的精神,我们将其交给浏览器。这是此次活动的example。如何实现CSS3 GWT TransitionEnd监听器
摩擦:GWT 2.4不支持此事件,在DOM.setEventListenersupported event types。我试着使用:
DOM.sinkBitlessEvent(element, "transitionend");
但使用调试器的发现,它仅支持(通过重新绑定):
- 的dragenter
- dragexit
- 的dragover
- 下降
因此,缺少编写本机事件处理程序JSNI代码,这使我可以打开memory leaks,如何在GWT中的GWT中的元素上侦听事件?下面
仅供参考,就是GWT 2.3建立了gecko_1.8排列在DomImplStandard.java:
protected native void sinkBitlessEventImpl(Element elem, String eventTypeName) /*-{
if (eventTypeName == "dragenter")
elem.ondragenter = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent;
if (eventTypeName == "dragexit")
elem.ondragexit = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent;
if (eventTypeName == "dragover")
elem.ondragover = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent;
if (eventTypeName == "drop")
elem.ondrop = @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent;
}-*/
答
它的接缝mgwt管理转移事件(等等)。他们用自己的版本替换com.google.gwt.user.client.impl.DOMImpl。请参阅module descriptor。 但看他们的DOMImpl之一(如:DOMImplMobileSafari),他们编写本机事件处理程序:
//transistion end
if (chMask & 0x8000000) {
if(bits & 0x8000000){
elem.addEventListener('webkitTransitionEnd', @com.google.gwt.user.client.impl.DOMImplStandard::dispatchEvent, false);
}
}
我不明白他们是如何管理内存泄漏。
您将如何使用此机会来处理实际客户端代码中的事件? – alexp 2014-11-05 01:38:18