Подтвердить что ты не робот

Как я могу пройти через элемент?

Я хочу отобразить изображение под мышью (палец для имитации сенсорного экрана), когда происходит событие mousedown и скрыть его, когда происходит событие mouseup, но когда я это делаю, отображаемое изображение блокирует последующие события мыши ("click" в частности) на элементы под этим изображением. Кстати, я использую jQuery.

Я уверен, что это как-то связано с бурлящим или размножающимся событием или несколько, но я не мог понять это. Любые указатели, пожалуйста?

4b9b3361

Ответ 1

Проверьте этот ответ на этот пост:

fooobar.com/questions/1303/...

Кажется, я делаю то, что понимаю, чего вы хотите достичь, используя чистый кроссбраузерный подход CSS.

pointer-events:none; touch-action:none;

Ответ 2

Билли Мун, ваш код почти работал. Вам просто нужно использовать hide и show вместо css:

$('#finger').click(function(e){
  evt = e || window.event;

  // make finger disappear
  $('#finger').hide(0);

  // get element at point of click
  starter = document.elementFromPoint(evt.clientX, evt.clientY);

  // send click to element at finger point
  $(starter).click();

  // bring back the finger
  $('#finger').show(0);
});

Ответ 3

Это непроверено - но оно основано на рабочем script моем, поэтому должно быть по правому краю. В принципе, вы должны сделать слой, который на этом пути исчезает на мгновение, поэтому вы можете использовать метод elementFromPoint, а затем вернуть его.

$('.selector').click(function(e){
    evt = e || window.event;

    // make finger disappear
    $('.finger').css({display:'none'});

    // get element at point of click
    starter = document.elementFromPoint(evt.clientX, evt.clientY);

    // send click to element at finger point
    $(starter).click();

    // bring back the finger
    $('.finger').css({display:''});
});

Ответ 4

Вы можете сделать это

$(document).bind('mousedown mouseup', function() {
    $('.finger').toggle();
});

Проверьте рабочий пример http://jsfiddle.net/2cSj4/2/