這件事讓我生氣!無法與轉換HTML元素互動
我創建了編程絕對定位的div在html頁面中的另一個div內。外部div註冊了mousedown和touchstart事件,內部div使用css3轉換開始移動。
所有轉換都會影響-WebKit-transform屬性。
一切正常,除了事件處理: 在Chrome和Safari中,所有的事件都被捕獲到外部div事件處理程序中,但事件的目標屬性很少是我點擊的div!
當div完成它的轉換時,事件目標始終是正確的,但不是在div轉換時。這是一個錯誤?我錯過了什麼嗎?
UPDATE:
下面的示例是與Safari和Chrome兼容
這是一個在線樣本是演示功能的問題:http://jsfiddle.net/qfn7F/4/
球得到從屏幕頂部催生和正在走向它的底部。當用戶點擊一個球體(mousedown事件)時,被點擊的球體必須從屏幕上消失。
這裏是處理與球體的互動代碼:
container.addEventListener(onSelect, function() {
if (event.target.classList.contains("transition")) {
var tDiv = event.target;
var box = tDiv.getBoundingClientRect();
var durationEase = "0.25s linear";
tDiv.style.pointerEvents = "none";
tDiv.style.webkitTransform = "translate3d(" + box.left + "px," + box.top + "px, 1px)";
tDiv.style.opacity = 0;
tDiv.style.webkitTransition = "opacity " + durationEase;
}
event.preventDefault();
event.stopPropagation();
}, false);
但該事件的目標是很少的用戶點擊,球不會以一致的方式從屏幕上消失的領域。
如果一個球體到達屏幕的底部,那就是過渡結束,那麼點擊事件就會100%工作。
您可以顯示的jsfiddle一個例子嗎? –
@AdamMoszczyński這裏是小提琴http://jsfiddle.net/qfn7F/4/ – Summon
相關問題: http://stackoverflow.com/questions/18629298/on-a-moving-element-dont-fire-the-鼠標事件 http://stackoverflow.com/questions/9304215/css3-translate3d-mouse-events-issue http://stackoverflow.com/questions/5472802/css-z-index-lost-after-webkit- transform-translate3d http://stackoverflow.com/questions/18496551/translate3d-causing-jquery-hover-click-events-to-not-fire-correctly –