悬停时停止 CSS 动画
Stall CSS animation on hover
对于我的项目,我写了一个纯粹的 CSS 悬停菜单。当页面加载菜单 (#drop
) 时,等待几秒钟,然后向上移出视图。您可以通过将鼠标悬停在页面顶部的不同元素 (#hover
) 上来恢复菜单。
它非常适合我,但有一个问题。当您加载页面并保持悬停在 #hover
上时,#drop
在完成等待后向上移动了片刻,然后以小故障的方式向下移动。
你可以在这里亲身体验一下:https://jsfiddle.net/27mbnpwk/
只需 运行 脚本并将光标放在文本上,等待几秒钟即可看到它跳转。
有没有办法让菜单仅在您不使用纯 CSS 悬停在 #drop
上时才会出现?或者,否则,用js?
我找不到纯 CSS 的方法,但是 jquery 有一个简单的解决方案(感谢@LinkinTED):
两个CSS classes,一个用于向下菜单,一个用于向上菜单:
.down{
transform: translate(0,00%);
}
.up{
transform: translate(0,-175%);
}
然后在 javascript 中创建一个在页面加载后启动的函数。此函数等待 3 秒,然后将 up
class 添加到元素,将其向上推,超出视图。每次 #hover
悬停时都会更改 class 的函数:
window.onload = function() {
setTimeout(
function(){
$('#drop').removeClass('down').addClass('up');},
3000);
};
$('#hover').hover(
function() {
// mouse in
$('#drop').removeClass('up').addClass('down');
},
function() {
// mouse out
$('#drop').removeClass('down').addClass('up');
}
);
在这里测试:
https://jsfiddle.net/g9oq0124/1/
如果有人确实找到了一种纯粹的 css 或更清洁的方法,我很想听听!
对于我的项目,我写了一个纯粹的 CSS 悬停菜单。当页面加载菜单 (#drop
) 时,等待几秒钟,然后向上移出视图。您可以通过将鼠标悬停在页面顶部的不同元素 (#hover
) 上来恢复菜单。
它非常适合我,但有一个问题。当您加载页面并保持悬停在 #hover
上时,#drop
在完成等待后向上移动了片刻,然后以小故障的方式向下移动。
你可以在这里亲身体验一下:https://jsfiddle.net/27mbnpwk/
只需 运行 脚本并将光标放在文本上,等待几秒钟即可看到它跳转。
有没有办法让菜单仅在您不使用纯 CSS 悬停在 #drop
上时才会出现?或者,否则,用js?
我找不到纯 CSS 的方法,但是 jquery 有一个简单的解决方案(感谢@LinkinTED):
两个CSS classes,一个用于向下菜单,一个用于向上菜单:
.down{
transform: translate(0,00%);
}
.up{
transform: translate(0,-175%);
}
然后在 javascript 中创建一个在页面加载后启动的函数。此函数等待 3 秒,然后将 up
class 添加到元素,将其向上推,超出视图。每次 #hover
悬停时都会更改 class 的函数:
window.onload = function() {
setTimeout(
function(){
$('#drop').removeClass('down').addClass('up');},
3000);
};
$('#hover').hover(
function() {
// mouse in
$('#drop').removeClass('up').addClass('down');
},
function() {
// mouse out
$('#drop').removeClass('down').addClass('up');
}
);
在这里测试: https://jsfiddle.net/g9oq0124/1/
如果有人确实找到了一种纯粹的 css 或更清洁的方法,我很想听听!