В основном я веб-дизайнер, и я не очень разбираюсь в jQuery, поэтому я немного потерялся. Я написал несколько сценариев jQuery для управления кнопками, но у них нет такого поведения, как хотелось бы на ПК и на сенсорных устройствах.
У меня есть два семейства кнопок для управления. Кнопки "изображения" (swap) и кнопки CSS (изменение цвета фона).
Я бы хотел отключить эффект "зависания" на сенсорных устройствах, потому что он несовместим, но держите нажатие мыши на сенсорных устройствах и ПК. Но драма есть.
Вот модель, которую я создал: Модель
Вот беспорядок, который я написал:
// Rollover on image
$(function() {
$('img.rollover').on('mouseenter', function(){
$(this).css("cursor", "pointer");
this.src = this.src.replace("-normal","-hover");
});
$('img.rollover').on('mouseleave', function(){
this.src = this.src.replace("-hover","-normal");
});
});
// Toggles forms
$(function() {
$("#form-contact").hide();
$("#form-devis").hide();
$("#btn-contact").click(function(){
$(this).toggleClass("btn-form-hover");
$("#form-contact").fadeToggle(500, "linear");
$("#form-devis").hide();
$("#btn-devis").removeClass("btn-form-hover");
});
$("#btn-devis").click(function(){
$(this).toggleClass("btn-form-hover");
$("#form-devis").fadeToggle(500, "linear");
$("#form-contact").hide();
$("#btn-contact").removeClass("btn-form-hover");
});
});
// Toggle client area
$(function() {
$("#div-client-area").hide();
$("#btn-clients").click(function(){
$("#div-home").toggle(500,"linear");
$("#div-client-area").toggle(500,"linear");
});
});
По умолчанию сенсорные устройства не поддерживают наведение. Однако кажется, что вы пытаетесь создать эффект наведения с помощью jQuery, который вам не обязательно нужен! Просто используйте CSS для этого, с div:hover{ cursor:pointer; background-color: xyz... }
div:hover{ cursor:pointer; background-color: xyz... }
. Это будет применяться на рабочем столе, но не прикосновением.
Кроме того, вы можете использовать легкую библиотеку под названием Modernizr, чтобы обнаружить наличие сенсорных событий в браузере. Он добавит классы в <html>
зависимости от доступных функций. Одна из функций, которую он тестирует, - это прикосновение, поэтому вы можете проверить, есть ли класс и сформировать условные утверждения соответственно. Что-то вроде if($("html").hasClass("touch"){... })
.
Надеюсь, это даст вам широкое направление.