Подтвердить что ты не робот

Я хочу применить Delay On Mouse Out в css

Я пытаюсь применить задержку перед началом перехода CSS на событие мыши. Мой CSS-код приведен ниже, пожалуйста, дайте мне знать, как применять временную задержку до начала перехода CSS на мышь.

Я хочу добиться, чтобы меню оставалось стабильным в течение некоторого времени (например, в течение 3 секунд) после того, как пользователь вытащил указатель мыши из меню.

.timnav li .dropdown {
    width: auto;
    min-width: 0px;
    max-width: 230px;
    height: 0;
    position: absolute;
    overflow: hidden;
    z-index: 999;
    background:rgba(255, 255, 255, 0.8);
    }

.timnav li:hover .dropdown {
    min-height: 60px;
    max-height: 500px;
    height: auto;
    width: 100%;
    padding: 0;
            -webkit-transition: delay .5s ease-in-out;
        -moz-transition: delay .5s ease-in-out;
        -o-transition: delay .5s ease-in-out;
}

.timnav li .dropdown ul {
    margin: 0;
    margin-top:7px;


}

.timnav li .dropdown ul > li {
    display: block;
    width: 100%;
    float: left;
    text-align: left;
    height: auto;
    border-radius: none;
    padding-bottom:2px;
}


    .timnav li .dropdown  .dropdown2{
    display: none;
    width: 100%;
    float: left;
    text-align: left;
    height: auto;
    border-radius: none; 
}

    .timnav li .dropdown ul > li:hover .dropdown2{
    display: block;
    width: 100%;
    float: left;
    text-align: left;
    height: auto;
    border-radius: none;

}

    .timnav li .dropdown .dropdown2:hover {
    display: block;
    width: 100%;
    float: left;
    text-align: left;
    height: auto;
    border-radius: none;


}


    .timnav li .dropdown .dropdown2 li a {
    display: block;
    padding-left:7px !important;
    height:6 !important;
    padding-top:8px;
    background: url(../images/nav-bg.jpg) repeat; color:#fff;

}


.timnav li .dropdown ul > li a {
    display: block;
    line-height: 26px;
    height: 22px;
    padding: 10px;
    background: url(../images/nav-crrent.jpg) repeat; color:#FFFFFF;

}

.timnav ul .dropdown ul li:first-child a {
    border-radius: 0;
}

.timnav li .dropdown li a:hover {
    background: url(../images/nav-bg.jpg) repeat; color:#000;
}
4b9b3361

Ответ 1

Вы можете добавить задержку к переходу, синтаксис выглядит следующим образом:

transition: all 0.5s ease-in-out 3s;

Итак,

transition: <property> <duration> <timing-function> <delay>;

Синтаксис одинаковый для всех префиксных версий.

Я создал демонстрацию этого, потому что вам нужно сделать что-то немного сложное, чтобы сделать элемент без задержки, но задержка перед тем, как он пойдет.

http://jsfiddle.net/pgqM2/

Трюк состоит в том, чтобы переопределить переход, чтобы добавить задержку 3 с, когда нет наведения, но иметь задержку 0 с при наведении:

li ul {
    opacity: 0;
    transition: all 0.5s ease 3s;
}

li:hover ul {
    opacity: 1;
    transition: all 0.5s ease 0s;
}

Ответ 2

В CSS есть свойство transition-delay. Просто добавьте это в свой код, и вы получите желаемый эффект.

transition-delay:3s;

Для целей коротких свойств перехода, вот изображение, которое суммирует его

transition: <property> || <duration> || <timing-function> || <delay> [, ...];

Итак, в вашем случае это будет выглядеть как

div:hover {
  -webkit-transition: .5s ease-in-out 3s;
  -moz-transition: .5s ease-in-out 3s;
  -o-transition: .5s ease-in-out 3s;
  transition: .5s ease-in-out 3s;
  color: red;
  cursor: pointer;
}
<div>Hover me. There is a delay!</div>

Ответ 3

Вы не можете использовать переход css при использовании дисплея none, только решение с дисплеем отсутствует js.

Ответ 4

Вы можете использовать свойство css3 transition-delay для задержки выполнения css. Нажмите "Попробовать сами", чтобы увидеть пример.