Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios、webkit溢出滚动:滚动列表上的触摸识别被破坏_Ios_Css_Webkit_Scroll - Fatal编程技术网

ios、webkit溢出滚动:滚动列表上的触摸识别被破坏

ios、webkit溢出滚动:滚动列表上的触摸识别被破坏,ios,css,webkit,scroll,Ios,Css,Webkit,Scroll,如在列表上使用webkit overflow scrolling:touch时所述,触摸识别将被破坏 开始滚动 在列表仍在滚动时触摸列表元素 被触摸的元素不是唯一一个实际被触摸的元素,而是在步骤1中被触摸以启动滚动的元素。我尝试使用iScroll复制本机滚动,但失败了。滚动速度很慢,无法使用。在等待列表停止的情况下,是否还有其他方法可以解决此问题(提前支付泰铢) 编辑 目前的解决办法: 通过以下方式检查滚动: $('.myList').on('touchmove', function(event

如在列表上使用
webkit overflow scrolling:touch
时所述,触摸识别将被破坏

  • 开始滚动
  • 在列表仍在滚动时触摸列表元素
  • 被触摸的元素不是唯一一个实际被触摸的元素,而是在步骤1中被触摸以启动滚动的元素。我尝试使用iScroll复制本机滚动,但失败了。滚动速度很慢,无法使用。在等待列表停止的情况下,是否还有其他方法可以解决此问题(提前支付泰铢)

    编辑

    目前的解决办法:

    通过以下方式检查滚动:

    $('.myList').on('touchmove', function(event {
      App.set('scroll', true);
    });
    
    滚动后拒绝第一次触摸:

    click : function(event) {
    
      if (App.get('scroll')) {
        App.set('scroll', false);
        return false;
      } else {
        this.performClick();
        return true;
      }
    }
    

    现在所有ios用户都必须触摸两次……有没有办法捕捉第一次触摸的坐标并在相同坐标下模拟第二次触摸?

    我从您的描述中了解到,您的滚动效果参差不齐。我想您可能会使用悬停事件来聚焦,而不是触摸和滚动事件

    如果为列表项(或其任何父元素或子元素)设置了:hover,它将干扰您的触摸。触摸设备将首先模拟悬停效果,然后模拟单击/滚动事件。这将导致出现锯齿状滚动。清除所有:悬停状态,然后再次检查是否出现相同问题


    我已经写了一篇关于响应式设计的详细文章和演示文稿。您可以找到它。请查看第8、9和12节。

    在我的例子中,只需使用
    -webkit overflow scrolling:touch将列表包装在额外的div中;
    有助于解决此问题