3

我有一个菜单,其中 onHover 显示一个信息框,告诉按钮的作用。如何应用延迟,以便在我将鼠标悬停在按钮上一秒钟后出现框?

HTML:

<td class="info"><a id="login-edit_account" href="../login-edit_account.php">Edit account<span><div id="pointer"></div><p style="font-size:11px">Edit user's information.</p></span></a></td>

CSS:

td.info                     {
                            position:relative; /*this is the key*/
                            z-index:24; background-color:#ccc;
                            color:#000;
                            text-decoration:none
                            }

td.info:hover               {
                            z-index:25;
                            background-color:#fff
                            }

td.info span                {
                            display: none;
                            transition: 0s display;
                            }

td.info:hover span          { /*the span will display just on :hover state*/
                            display:block;
                            position:absolute;
                            top:42px; left:7px;
                            width:210px;
                            border:2px solid #0cf;
                            padding: 5px;
                            background-color:#fff; color:#000;
                            text-align: center;
                            -webkit-transition-delay:5s;
                            }

#pointer                    {
                            border:solid 10px transparent;
                            border-bottom-color:#0cf;
                            position:absolute;
                            margin:-27px 0px 0px 10px;
                            }
4

2 回答 2

5

这真的很简单。例子:

a {
    -webkit-transition: 1s 3s;
}

a:hover {
    background-color: red;
}

当用户悬停链接时,浏览器会等待 3 秒。只有当这些秒过去后,背景才会变为红色(在这种情况下,过渡时间为 1 秒)。

这是一个小提琴:http: //jsfiddle.net/joplomacedo/VP7hE/

于 2013-03-24T19:08:08.893 回答
1

是的,您可以使用 CSS3 的过渡来延迟:hover效果。

CSS 过渡是 CSS3 规范集的一部分,提供了一种在更改 CSS 属性时控制动画速度的方法。您可以使属性更改在一段时间内发生,而不是让属性更改立即生效。例如,如果您将元素的颜色从白色更改为黑色,通常这种更改是瞬时的。启用 CSS 过渡后,更改会按照加速曲线的时间间隔发生,所有这些都可以自定义。

在您的情况下,我认为您需要关注转换延迟属性。

以下是一些关于使用转换/示例用例的有用链接:

https://developer.mozilla.org/en-US/docs/CSS/transition-delay

http://css-tricks.com/transition-delay-delays/

http://designshack.net/articles/css/create-stunning-effects-with-css-transition-delays/

于 2013-03-24T17:47:54.077 回答