letehaha
@letehaha
Вникаю вo front-end

Как запустить функцию только если экран сенсорный?

Хочу запускать переключение слайдов с помощью touch, только если экран сенсорный.
Нашел вот такое решение определения экрана:
function is_touch_device() {
		return 'ontouchstart' in window || navigator.maxTouchPoints;
	};

UPD: ещё вот такое (с ним код все равно не работает)
function is_touch_device(){
		return (('ontouchstart' in window)
			|| (navigator.MaxTouchPoints > 0)
			|| (navigator.msMaxTouchPoints > 0));
	};

В итоге написал следующее:
$(document).ready(function(){

	function is_touch_device() {
		return 'ontouchstart' in window || navigator.maxTouchPoints;
	};


    if (is_touch_device())
		    $('#slider-wrap ul li').on('swipeleft', function(e) {
			    slideRight();
		    });
		    $('#slider-wrap ul li').on('swiperight', function(e) {
			    slideLeft();
		    });
});

Не работает. Объясните, что я делаю не так? P.S. Новичок в программировании
UPD2: Всё, отбой. Магическим образом оно заработало \о/
Только нужно сделать условие немного другим (раньше с таким условием тоже не работало :) )
if (is_touch_device()){
		$('#slider-wrap ul li').on('swipeleft', function(e) {
			slideRight();
		});
		$('#slider-wrap ul li').on('swiperight', function(e) {
			slideLeft();
		});
	} else{
		false
	};
  • Вопрос задан
  • 450 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Никак. Наличие ontouchstart в window означает только то, что браузер поддерживает сенсорные экраны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы