Поведение кнопок между ПК и сенсорными устройствами (jQuery)

0

В основном я веб-дизайнер, и я не очень разбираюсь в 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");
  });
});
Теги:
click
touch
toggle

1 ответ

0

По умолчанию сенсорные устройства не поддерживают наведение. Однако кажется, что вы пытаетесь создать эффект наведения с помощью jQuery, который вам не обязательно нужен! Просто используйте CSS для этого, с div:hover{ cursor:pointer; background-color: xyz... } div:hover{ cursor:pointer; background-color: xyz... }. Это будет применяться на рабочем столе, но не прикосновением.

Кроме того, вы можете использовать легкую библиотеку под названием Modernizr, чтобы обнаружить наличие сенсорных событий в браузере. Он добавит классы в <html> зависимости от доступных функций. Одна из функций, которую он тестирует, - это прикосновение, поэтому вы можете проверить, есть ли класс и сформировать условные утверждения соответственно. Что-то вроде if($("html").hasClass("touch"){... }).

Надеюсь, это даст вам широкое направление.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню