#javascript #html #css #vue.js #construct-2
#javascript #HTML #css #vue.js #construct-2
Вопрос:
У меня есть файл экспорта игры construct 2, в который я добавляю поверх него HTML-файл. Я хочу отключить событие касания / щелчка динамически генерируемого холста игры construct 2, потому что, когда я нажимаю на добавленный HTML-код, щелчок также распространяется на элемент canvas игры.
Я использовал функции event.stopPropagation () и event.preventDefault (), но безрезультатно.
Комментарии:
1. event.stopPropagation() кажется правильным подходом для этого сценария. Можете ли вы поделиться кодом, чтобы мы могли видеть, что происходит.
Ответ №1:
Используйте только css в качестве pointer-events: none;
function func(){
console.log("clicked");
}
#myCanvas{
border: 1px solid #000000;
pointer-events: none;
}
#myCanvas2{
border: 1px solid #000000;
}
<h2>With Css try to click me..</h2>
<canvas id="myCanvas" width="200" height="100" onclick="func()">
</canvas>
<h2>Without Css try to click me..</h2>
<canvas id="myCanvas2" width="200" height="100" onclick="func()">
</canvas>
Комментарии:
1. Проблема в том, что холст динамически генерируется из редактора construct 2. Поэтому мне неудобно добавлять какой-либо класс или идентификатор в canvas и добавлять событие указателя. P.S. События указателя на none не сработали
Ответ №2:
Добавить в свойство css pointer-events: none
Ответ №3:
Если это проблема только с Construct2, я бы сказал, добавьте условие к каждому событию щелчка, которое проверяет, не находится ли курсор над элементом HTML, чтобы активировать события canvas, и не активировать, если это так. Поскольку я не совсем уверен, где возникает проблема, я оставлю это на этом, надеюсь, это поможет!