jQuery mousemove:仅当鼠标移动时才显示导航栏
我已经知道如何让导航条出现在mousemove上,但我很难知道如何在鼠标停止移动后让导航条再次消失 CSS JavaScriptjQuery mousemove:仅当鼠标移动时才显示导航栏,jquery,mousemove,Jquery,Mousemove,我已经知道如何让导航条出现在mousemove上,但我很难知道如何在鼠标停止移动后让导航条再次消失 CSS JavaScript $(document).mousemove(function(event) { $("nav").css("display", "block"); }); 我相信有一个简单的解决办法,但我已经寻找了一段时间,但没有结果 谢谢 您可以在鼠标移动时注册鼠标停止事件,并在调用该事件后将其删除。因为您使用的是jQuery,所以还可以使用.show()和.hid
$(document).mousemove(function(event) {
$("nav").css("display", "block");
});
我相信有一个简单的解决办法,但我已经寻找了一段时间,但没有结果
谢谢 您可以在鼠标移动时注册鼠标停止事件,并在调用该事件后将其删除。因为您使用的是jQuery,所以还可以使用.show()和.hide()而不是直接更改css。您可以获得鼠标停止事件的插件 如果您决定使用.show和.hide,您应该看看api文档。有了一些额外的参数,你可以轻松地显示和隐藏一个好的动画,而不是瞬间出现和消失
您可以在鼠标移动时注册鼠标停止事件,并在调用该事件后将其删除。因为您使用的是jQuery,所以还可以使用.show()和.hide()而不是直接更改css。您可以获得鼠标停止事件的插件 如果您决定使用.show和.hide,您应该看看api文档。有了几个额外的参数,你可以很容易地显示和隐藏一个漂亮的动画,而不是一个瞬间出现和消失
在jQuery中,mousemove结束时没有本机事件, 但是您可以在internet上使用一些用于mousestop的jQuery插件,比如 然后,您可以这样做:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
jQuery中没有用于mousemove结束的本机事件, 但是您可以在internet上使用一些用于mousestop的jQuery插件,比如 然后,您可以这样做:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
您可以使用这样的超时系统:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
使用以下样式:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
50ms可根据您想要的灵敏度进行调整。您可以使用如下超时系统:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
使用以下样式:
$(document).mousemove(function(event){
$("nav").show();
});
$(document).mousestop(function(e) {
$("nav").hide();
});
var timer;
$(window).on('mousemove', function () {
$('nav').addClass('show');
try {
clearTimeout(timer);
} catch (e) {}
timer = setTimeout(function () {
$('nav').removeClass('show');
}, 50);
});
nav {
background: #333;
color: #fff;
visibility: hidden;
opacity: 0;
transition: all .5s ease;
}
nav.show {
opacity: 1;
visibility: visible;
}
50ms可根据您想要的灵敏度进行调整。它需要以多快的速度消失?就在它停止移动之后?为什么不做一个
setTimeout
,2-3秒后它会自动消失呢。该网页一直在跟踪鼠标是否在移动,因此除非用户闲置超过您选择的时间,否则它不会消失。@aug我刚刚发布了一个类似于您建议的50毫秒超时的解决方案。它需要多快消失?就在它停止移动之后?为什么不做一个setTimeout
,2-3秒后它会自动消失呢。该网页不断跟踪鼠标是否在移动,因此除非用户闲置超过您选择的时间,否则它不会消失。@aug我刚刚发布了一个类似于您建议的50毫秒超时的解决方案。这很有效,谢谢。现在只想找到一种方法让它更平滑地出现和消失…@user1912899如果你想让它更平滑,我会创建一个具有可见状态的类,并在其上使用CSS转换。然后切换该类。我不认为您可以将display:none
转换为display:block
,但是可见性:hidden
和不透明度
是可行的选择。@user1912899我已经更新了我的答案,让用户更容易(转换)。为简洁起见,供应商前缀的左边。太好了,非常感谢。但是.fadeIn()和.fadeOut()呢?这难道不容易吗?@user1912899.fadeIn()
和.fadeOut()
将起作用,但每次退换时,您可能都必须调用.stop()
。CSS在默认情况下处理得很好。这很有效,谢谢。现在只想找到一种方法让它更平滑地出现和消失…@user1912899如果你想让它更平滑,我会创建一个具有可见状态的类,并在其上使用CSS转换。然后切换该类。我不认为您可以将display:none
转换为display:block
,但是可见性:hidden
和不透明度
是可行的选择。@user1912899我已经更新了我的答案,让用户更容易(转换)。为简洁起见,供应商前缀的左边。太好了,非常感谢。但是.fadeIn()和.fadeOut()呢?这不是更容易吗?@user1912899.fadeIn()
和.fadeOut()
可以工作,但每次淡入淡出时,您可能必须调用.stop()
。默认情况下,CSS只会很好地处理它。