首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS自动悬停修复?

iOS自动悬停修复?
EN

Stack Overflow用户
提问于 2011-04-01 00:27:01
回答 8查看 37.2K关注 0票数 16

是否有一个jQuery插件或JavaScript脚本能够自动遍历每个CSS悬停(在外部样式表中找到)并将其绑定到一个双触地事件中?

  • 触地1- CSS :悬停被触发
  • 触地2-点击(链接跟随或形成动作)

如果还没有这样的东西,它能做吗?如何(指导方针)?

编辑:

要说清楚的是,我不是在寻找双击。触地得分1是一个标签,就像触地得分2一样。两者之间的时间可以少于0秒,也可以长达3分钟,这是用户的选择。

无触碰:

  • :悬停->元素变得可见
  • 单击->以下链接或其他操作

触摸(iOS):

  • 触地1 ->元素可见
  • 触地2 ->以下链接或其他动作
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-04-05 21:30:07

试试这个:

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>iPad Experiment</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            if(navigator.platform == "iPad") {
                $("a").each(function() { // have to use an `each` here - either a jQuery `each` or a `for(...)` loop
                    var onClick; // this will be a function
                    var firstClick = function() {
                        onClick = secondClick;
                        return false;
                    };
                    var secondClick = function() {
                        onClick = firstClick;
                        return true;
                    };
                    onClick = firstClick;
                    $(this).click(function() {
                        return onClick();
                    });
                });
            }
        });
    </script>
    <style type="text/css">
        a:hover {
            color:white;
            background:#FF00FF;
        }
    </style>
<body>
    <a href="http://google.ca">Google</a>
    <a href="http://stackoverflow.com">stackoverflow.com</a>
</body>
</html>

..。或者看看在我的网站上演示。请注意,它只在iPad上运行它的魔力--检测iOS的所有版本是我书中的另一个问题;)

它的作用是基于这样一个事实..。

在您单击iphone或ipad上的链接后,它会留下一个模拟鼠标悬停,触发该链接上的a:悬浮css样式。如果链接具有使您保持在同一页上的javascript处理程序,则在单击另一个链接之前,悬停状态不会更改。

引文:在先前的链接被javascript替换后,Safari iphone/ipad在新链接上“鼠标悬停”

票数 13
EN

Stack Overflow用户

发布于 2011-04-06 08:33:42

我用过这个:

代码语言:javascript
复制
$(document).ready(function() {
    $('.hover').bind('touchstart touchend', function(e) {
        e.preventDefault();
        $(this).toggleClass('hover_effect');
    });
});

之前,允许在某些元素上悬停。显然,您需要调整它供您自己使用,但这是一个很好的方式,允许触摸和保持悬停效果。

票数 6
EN

Stack Overflow用户

发布于 2012-03-16 04:10:56

下面是一个进一步优化的版本,它还处理关闭“悬停”

必须将站点封装为

代码语言:javascript
复制
<div id="container"></div>

才能发挥作用。把闭幕式放在身体上什么也没做

代码语言:javascript
复制
var bodyBound = false;
var container;

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i))
{
    container = $("#container");

     // Provoke iOS :hover event
    $("a.someLink").on("mouseover", handleHoverClick);
}

function handleClose(event)
{
    container.off("click", handleClose);

    bodyBound = false;
}

function handleHoverClick(event)
{
    if (!bodyBound)
    {
        bodyBound = true;

        // Somehow, just calling this function—even if empty—closes the :hover
        container.on("click", handleClose);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5507964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档