【问题标题】:Disable CSS3 delayed transitions with click/tap events通过点击/点击事件禁用 CSS3 延迟转换
【发布时间】:2014-02-02 15:31:20
【问题描述】:

我有一个网页,其中的链接如下所示:

<a href="..." class="icon home"><span>Home</span></a>

我的链接仅显示为一个图标(使用伪元素),但是当一个人将鼠标悬停在它上面并等待一段时间时,文本也会出现在它旁边。我使用 transition 延迟状态更改纯粹在 CSS3 中创建了这些状态。

a span {
    text-indent: -1000em;
}

a:hover span {
    text-indent: 0;
    transition: text-indent 0 3s;
}

Here's a working example 在 JSFiddle 上。

但我想解决一些怪癖,如果可能的话,我会特别乐意在没有 Javascript 的情况下做到这一点:

  1. 当使用鼠标时,我不想在用户已经点击操作链接时显示span(在页面上做某事而不重定向到其他地方),因为当用户点击链接时,他们可能仍然停留在它上面鼠标光标因此延迟悬停状态仍然执行。

  2. 在移动设备上点击相同的链接时,我想取消悬停,这样只会记录点击。

基本上通过解决#2,当解决方案不是特定于设备时,我也会解决#1。

【问题讨论】:

    标签: css hover css-transitions delay


    【解决方案1】:

    我不确定它是否有效,但您可以使用 a:activea:visited 隐藏跨度

    a:active span{
        display: none;
    }
    
    a:visited span{
        display: none;
    }
    

    Example

    【讨论】:

    • 我试过了,但它似乎不起作用。即使您的示例似乎也无法在桌面上运行(尝试过 Chrome 浏览器)。而:active 仅根据 W3C 应用:...在用户按下鼠标按钮并释放它的时间之间。所以这并不能解决问题。
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多