Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2018, 15:07
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Нажатие на левую или правую часть экрана
Как отследить нажатие на левую или правую часть экрана?
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2018, 15:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,946

1. получить координаты клика;
2. получить размер экрана;
3. разделить размер экрана на 2 и сохранить значение в переменную;
4. сравнить "x" координату с размером половины экрана (получен в шаге 3), если значение х-координаты больше, то клик произошел на правой половине, если равно, то клик был точно посередине, иначе на левой.

Про прослушивание событий:
https://learn.javascript.ru/introduction-browser-events
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2018, 15:29
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Nexus, извините не правильно выразился, нужно отследить нажатие на сенсор экрана
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2018, 15:47
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,946

Retro_1477, все тоже самое, даже событие.
Ответить с цитированием
  #5 (permalink)  
Старый 10.12.2018, 15:50
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,946

С jq:
$(document).click(function(e){
    alert(
        (e.clientX>$(window).width()/2)?'right':'left'
    );
});
Ответить с цитированием
  #6 (permalink)  
Старый 10.12.2018, 16:06
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Мне нужно ещё учитывать длительные нажатия, или click сойдёт?
Ответить с цитированием
  #7 (permalink)  
Старый 10.12.2018, 16:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,946

Нет, не подойдет, слушайте touchstart.
https://developer.mozilla.org/ru/doc...I/Touch_events
Ответить с цитированием
  #8 (permalink)  
Старый 10.12.2018, 17:05
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Надеюсь поможет. Спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 10.12.2018, 18:10
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Вроде получилось, но выдаётся ошибка.
var el = document.getElementsByTagName('body')[0];


  el.addEventListener("touchstart", handleStart, false);
  el.addEventListener("touchend", handleEnd, false);

  //el.addEventListener("touchmove", handleMove, false);
  
  function handleStart(evt) {
    evt.preventDefault();
    var touches = evt.changedTouches;
    if(window.innerWidth/2 < touches[0].pageX)
      button1 = true;
      button2 = false;
    if(window.innerWidth/2 > touches[0].pageX){
      button2 = true;
      button1 = false
    }
  }
  function handleEnd(evt) {
    evt.preventDefault();
    var touches = evt.changedTouches;
    if(window.innerWidth/2 < touches[0].pageX)
      button1 = false;
      button2 = false;
    if(window.innerWidth/2 > touches[0].pageX){
      button2 = false;
      button1 = false
    }
  }


Вот такая ошибка
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
Ответить с цитированием
  #10 (permalink)  
Старый 10.12.2018, 19:06
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 108

Разобрался, 10 и 21 удалил, всё нормально
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокрутка колесом мыши к якорю или 100% высоты экрана браузера Нарек Events/DOM/Window 2 11.08.2014 20:00
Координаты выделенного слова или координаты после двойного нажатие на слово olexand777 Events/DOM/Window 10 26.03.2013 09:37
Координаты выделенного слова или координаты после двойного нажатие на слово olexand777 jQuery 1 25.03.2013 15:36
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 00:16
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 06:55