相关疑难解决方法(0)

如何防止触摸设备上按钮的粘滞悬停效果

我创建了一个带有前一个和下一个按钮的旋转木马,它们始终可见.这些按钮具有悬停状态,它们变为蓝色.在触控设备(如iPad)上,悬停状态是粘性的,因此按下按钮后按钮会保持蓝色.我不希望这样.

  • 我可以为每个按钮添加一个no-hoverontouchend,并使我的CSS像这样:button:not(.no-hover):hover { background-color: blue; }但这可能对性能非常不利,并且不能正确处理Chromebook Pixel(同时具有触摸屏和鼠标)等设备.

  • 我可以添加一个touchdocumentElement,并使我的CSS像这样:html:not(.touch) button:hover { background-color: blue; }但这也不适用于同时具有触摸和鼠标的设备.

我更喜欢的是删除悬停状态ontouchend.但这似乎不太可能.聚焦另一个元素不会消除悬停状态.手动点击另一个元素,但我似乎无法在JavaScript中触发它.

我发现的所有解决方案似乎都不完美.有完美的解决方案吗?

javascript css hover touch

130
推荐指数
8
解决办法
10万
查看次数

检测是否使用移动设备(iOS/Android手机/平板电脑)中的浏览器

有没有办法检测是否使用了手持浏览器(iOS/Android手机/平板电脑)?

我试过这个目标是在手持设备上的浏览器中制作一半宽的元素,但它没有什么区别.

width: 600px;
@media handheld { width: 300px; }
Run Code Online (Sandbox Code Playgroud)

可以这样做,如果是这样的话怎么办?

编辑:从我使用的jmaes回答中的引用页面

@media only screen and (max-device-width: 480px).

css media-queries

44
推荐指数
7
解决办法
15万
查看次数

如何检测设备是否支持鼠标?

我目前使用以下测试(取自Modernizr)来检测触摸支持:

function is_touch_device() {
    var bool;
    if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
        bool = true;
    } else {
        injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function(node) {
            bool = node.offsetTop === 9;
        });
    }
    return bool;
}
Run Code Online (Sandbox Code Playgroud)

但有些设备是触摸和鼠标驱动的,所以我想要一个单独的功能来检测设备是否有鼠标支持.有什么好办法做这个检查?

最终我的意图是能够做到这些:

if(is_touch_device())

if(has_mouse_support())

if(is_touch_device() && has_mouse_support())
Run Code Online (Sandbox Code Playgroud)

javascript jquery

15
推荐指数
3
解决办法
6311
查看次数

在移动网站上获取屏幕分辨率

我正在设计一个移动网站,其中有一个部分可以从中下载壁纸.为了容纳许多用户,我希望能够根据屏幕分辨率下载壁纸.我想从JavaScript检测分辨率并显示适当的壁纸.

这是我在网上找到并试过xD失败的内容:

width  = window.innerWidth  || document.body.clientWidth
height = window.innerHeight || document.body.clientHeight;
Run Code Online (Sandbox Code Playgroud)

对于我的SGS3,其分辨率为720x1280,我得到了360x567.

我该如何从JavaScript中发现手机的分辨率?

javascript mobile

11
推荐指数
2
解决办法
4万
查看次数

在iPad上设置溢出滚动触摸覆盖webkit-scrollbar的所有自定义css设置,有没有解决此问题?

如果我为div设置以下css:

-webkit-overflow-scrolling: touch;
Run Code Online (Sandbox Code Playgroud)

我用来隐藏滚动条的自定义css被覆盖,默认滚动条出现在iPad上.

这是我用来隐藏滚动条的CSS:

  ::-webkit-scrollbar {
    width: 12px;
    opacity:0;
  }
  ::-webkit-scrollbar-track {
      opacity:0;
  }
  ::-webkit-scrollbar-thumb {
      opacity:0;
  }
Run Code Online (Sandbox Code Playgroud)

如果您知道在溢出滚动设置为触摸时覆盖默认滚动条的任何解决方案,我将非常感谢您的帮助.

谢谢!

css scroll webkit ipad

11
推荐指数
1
解决办法
1064
查看次数

如何在iOS 13及更高版本中检测iPad和iPad OS版本?

我可以在iPhone上检测到iOS 13,但在iPad OS 13中navigator.platform是MacIntel。因此,无法使用以下代码识别iPad,但它在iPhone上可以完美运行。

    if (/iP(hone|od|ad)/.test(navigator.platform)) {
            var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
            var version = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
            return version;
    }
Run Code Online (Sandbox Code Playgroud)

当我们要求使用iPad上的浏览器访问移动网站时,它将navigator.platform返回iPad,并且可以完美运行。

谁能建议使用Javascript 识别在iOS 13及更高版本上运行的iPad的方法?

javascript ipad ios ios13 ipados13

10
推荐指数
2
解决办法
2850
查看次数

mediaquery:如何检测触摸设备?

我需要:hover为触摸设备应用一些替代方案.CSS中是否有任何解决方案来检测触摸设备?

有没有Media Query检测触控设备的选项?

css css3 media-queries

2
推荐指数
1
解决办法
7422
查看次数

标签 统计

css ×4

javascript ×4

ipad ×2

media-queries ×2

css3 ×1

hover ×1

ios ×1

ios13 ×1

ipados13 ×1

jquery ×1

mobile ×1

scroll ×1

touch ×1

webkit ×1