mobile_点透_传透

Posted tianxiaxuange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mobile_点透_传透相关的知识,希望对你有一定的参考价值。

点透(传透)

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />

PC 事件 在移动端,会有 300 ms 的延迟。

技术分享图片

  • 点透现象:(面试题)
  • 轻轻触碰 box ,box 消失

当点击 非文字覆盖区域 时,盒子正常消失。

当点击 文字区域时,页面发生跳转。

 

  • 理想情况:

无论点击哪个区域,只要是点击盒子,盒子都消失,而不影响 a

 

  • 解决方案1:(面试阐述)

click    事件监听,PC 端的事件 在 移动端有 300 ms 的延迟

  • 解决方案2(模拟器测试无效, 移动端有效):

让 a 元素不能跳转,即取消浏览器的默认行为

  • document.addEventListener("touchstart", function(e){
        e.preventDefault();
    }, false);

② box 盒子消失,点击 a 元素,a 应该跳转,即给 a 元素指定一个全新的跳转动作

  • var aNodes = document.querySelector("a");
    
    for(var i=0; i<aNodes.length; i++){
        aNodes[i].addEventListener("touchstart", function(){
            // 获取 a 的跳转地址, 交给 window 实现跳转
            window.location.href = this.href;
        }, false);
    };
    /****    模拟器测试无效, 实际测试有效
        window.location 是一个只读对象,所有字母必须小写
        但是仍然可以赋予一个对象 DOMString
        两种写法,效果一致
        window.location = "https://www.baidu.com";
        window.location.href = "https://www.baidu.com";
     ****/

 

以上是关于mobile_点透_传透的主要内容,如果未能解决你的问题,请参考以下文章

VSCode 配置 用户自定义代码片段 自定义自动代码补充

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

这些 C++ 代码片段有啥作用?

POJ_1195 Mobile phones 二维树状数组

如何使用Rails中的Mobility gem以一种形式实现所有翻译? [关闭]