无法在移动设备上点击 h1

Posted

技术标签:

【中文标题】无法在移动设备上点击 h1【英文标题】:Can't click the h1 on mobile devices 【发布时间】:2017-10-21 14:26:00 【问题描述】:

我发现了一个奇怪的故障/错误或其他东西。我的网站有两个按钮和两个图像的简单代码。如果单击按钮(带有事件侦听器的简单 h1),其中一个图像会旋转。简单的。它适用于我的 MacBook,甚至适用于“Inspect Element”,如果我尝试模拟 iPhone 等,它也能很好地工作。

但是!在我的 iPhone 上,如果我单击 h1,则没有任何反应。我尝试了一切,我摆脱了所有元素,尝试了 z-index,没有任何帮助!

<div class="wrapper clearfix">
    <img class="bg" src="images/bg.svg">
    <img class="wheel" src="images/wheel.svg">
    <div class="right">
    <div class="g-recaptcha" data-sitekey="6LfhLTUUAAAAAMCrfKgrtViK22w1H98Uisw4dvlj"></div>
        <h1 class="spin" data-spin="clicked">Roztočit</h1>
    </div>
</div>

CSS:

.wrapper
  width: 80vw;
  position: relative;
  height: 100vh;


.bg
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events:none;


.wheel
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  transition: all 2s;
  z-index: 10;
  pointer-events:none;


.clearfix:after  
   content: "."; 
   visibility: hidden; 
   display: block; 
   height: 0; 
   clear: both;


.right
  width: 20vw;
  min-width: 340px;
  right: -20vw;
  position: absolute;
  padding-top: 20%;
  top: 0;
  z-index: 100;


.spin
    width: 304px;
    background-color: #78da92;
    line-height: 78px;
    font-size: 25px;
    color: #fff;
    border-radius: 4px;
    margin-top: 25px;
    z-index: 100;

jQuery:

$(document).ready(function()
        document.addEventListener('click', function (e) 
          var t = e.target;
          if (!t.dataset.hasOwnProperty('spin')) return;

          var fD = new FormData();
            fD.append('boom', t.dataset.spin);


          XXHR().request('get.php', function(response) 
              var obj = JSON.parse(response);
              console.log(obj);
              $(".wheel").css("-ms-transform", "rotate("+obj.type1+"deg)");
              $(".wheel").css("-webkit-transform", "rotate("+obj.type1+"deg)");
              $(".wheel").css("transform", "rotate("+obj.type1+"deg)");
          , function(err, status) 

          , true, fD);
        , false);

        document.addEventListener("keypress", function(event) 
            if (event.keyCode == 32) 
              var fD = new FormData();
                fD.append('boom', 'clicked');


              XXHR().request('get.php', function(response) 
                  var obj = JSON.parse(response);
                  console.log(obj);
                  $(".wheel").css("-ms-transform", "rotate("+obj.type1+"deg)");
                  $(".wheel").css("-webkit-transform", "rotate("+obj.type1+"deg)");
                  $(".wheel").css("transform", "rotate("+obj.type1+"deg)");
              , function(err, status) 

              , true, fD);
            
        )
    );

注意:jQuery/javascript 输入没有问题:

$(".spin").click()

在您看来,它工作得很好,它可以在移动设备上旋转。

测试您的想法的网站:

http://uidave.com/wheel/

祝你好运!请帮帮我!

【问题讨论】:

【参考方案1】:

iPhone 无法识别点击事件是very old and reproducible behaviour。您可以通过在要单击的元素上设置 cursor: pointer CSS 属性来绕过它。

【讨论】:

哇!惊人的!不知道。谢谢!

以上是关于无法在移动设备上点击 h1的主要内容,如果未能解决你的问题,请参考以下文章

Fancybox 打开 pdf 无法在移动设备上运行?

Tooltipster 无法在移动设备上运行 - Wordpress

Bootstrap 导航栏在移动设备上无法正常工作

Qt/QML SwipeDelegate 在移动设备(Android、iOS)上无法正常工作

简单的移动jQuery下拉菜单无法在移动设备上运行

使悬停功能与移动设备兼容