Как избежать переходных задержек при переключении наведения между братьями и сестрами без javascript?Как избежать переходных задержек при переключении наведения между братьями и сестрами?
Моя цель состоит в том, чтобы произвести мега меню со следующим поведением:
- Если пользователь парит над данной мега-меню в течение 1,5 секунд, откроется меню.
- Если пользователь полностью перемещает мышь от мега-меню, мега-меню мгновенно закрывается.
- Если пользователь перемещает мышь из одного мегапозиционного пункта в другое, второе меню заменяет первое меню.
Моя изменение тока, как показано ниже, имеет следующее поведение (разница в том, выделены жирным шрифтом):
- Если пользователь парит над данной мега меню в течение 1,5 секунд, меню откроется.
- Если пользователь полностью перемещает мышь от мега-меню, мега-меню мгновенно закрывается.
- Если пользователь перемещает мышь из одного мегапозиционного пункта в другое, первое меню остается открытым в течение 1,5 секунд. Затем,, второе меню заменяет первое меню.
У этого также есть позиционирующие сбои, но я сейчас игнорирую их; это всего лишь прототип.
Это легко выполняется с помощью javascript, но моя цель - сделать это с использованием CSS3.
.power > div {
display:inline-block;height:25px;background-color:lightblue;
padding:0;margin:0
}
.hider {
position:absolute;top:-999px;
width:80%;
background-color:pink;
}
.power div:hover .hider {
top:25px;
left:0px;
transition: all 0s 1.5s;
}
.power:hover div .hider{
background-color:orange;
transition: all 0s 1.5s;
}
<div class="power">
<div class="one">Menu-One
<div class="hider"><br/></br/>One</div>
</div>
<div class="two">Menu-Two
<div class="hider"><br/></br/>Two</div>
</div>
</div>
Умных, но при Т = 0, у наша реализация невидимо охватывает любые компоненты, которые находятся под ней. Например, попробуйте mousing над меню на https://jsfiddle.net/zjhrj0L5/1/ и сразу же нажмите «Click me». Я думаю, https://jsfiddle.net/r6ub7rya/ исправляет это, используя левый и верхний независимо друг от друга для разных наведении на мыши, но мне интересно, есть ли причина, по которой каждый всегда устанавливает верхний и левый при использовании меню voodoo. – Brian
@Brian Спасибо :) ... когда дело доходит до компонентов, которые могут быть скрыты внизу, дайте мне знать, если, и я мог бы дать вам намек или два. В большинстве случаев лучше решить, что эти элементы имеют «позицию», отличную от «статического» по умолчанию, а когда это не сработает, «z-index» может быть удобным резервным. – LGSon
Спасибо, используя левый vs top вместо opaque vs left/top отлично работает. В принципе, одна координата x/y устанавливается мгновенно при наведении указателя на один пункт меню, а другая координата x/y устанавливается после 1,5 секунд усечения по всему меню. Практически тот же трюк, который вы использовали. – Brian