点击显示鼠标的Jquery离开隐藏侧边栏
Jquery on click show mouseleave hide sidebar
嗨,我需要一些这个脚本,我设法通过鼠标单击显示面板,但我希望当我的鼠标离开面板时它会关闭它这是示例 http://jsfiddle.net/jikey/w9s7pt25/
$(function(){
$('.slider-arrow').click(function(){
if($(this).hasClass('show'))
{
$( ".slider-arrow, .spanel" ).animate({
right: "+=182"
}, 700, function() {
// Animation complete.
});
$(this).html('<img src="images/sideclose.png" />').removeClass('show').addClass('hide');
}
else
{
$( ".slider-arrow, .spanel" ).animate({
right: "-=182"
}, 700, function() {
// Animation complete.
});
$(this).html('<img src="images/sideopen.png" />').removeClass('hide').addClass('show');
}
});
});
这里你需要写 2 个方法。
jQuery click
显示单击箭头的部分,jQuery onmouseleave
隐藏退出该部分的部分。
我建议您在(背景样式)CSS中显示与类相关的slideopen.png和slideclose.png文件。
方法1:click
j查询代码:
$('.slider-arrow').on("click", function(){
if($(this).hasClass('show')){
$( ".slider-arrow, .panel" ).animate({
right: "+=300"
}, 700, function() {
// Animation complete.
}); $(this).html('«').removeClass('show').addClass('hide');
}
});
方法2:mouse leave
j查询代码:
$(".panel").on("mouseleave", function(){
if(!$('.slider-arrow.show').hasClass('show')) {
$( ".slider-arrow, .panel" ).animate({
right: "-=300"
}, 700, function() {
// Animation complete.
});
$(".slider-arrow").removeClass('hide').addClass('show');
}
});
演示链接:http://jsfiddle.net/w9s7pt25/7/
您可以做的是添加一个单独的鼠标输出函数,如此 jsfiddle 所示。 代码的问题在于,mouseover 事件只作用于.slider-arrow
一次,将类更改为 hide
,然后期望另一个鼠标悬停读取它需要隐藏。
$(function () {
$('.slider-arrow').mouseover(function () {
if ($(this).hasClass('show')) {
$(".slider-arrow, .panel").animate({
right: "+=300"
}, 700, function () {
// Animation complete.
});
$(this).html('«').removeClass('show').addClass('hide');
}
});
$('.panel').mouseout(function () {
if ($('.slider-arrow').hasClass('hide')) {
$(".slider-arrow, .panel").animate({
right: "-=300"
}, 700, function () {
// Animation complete.
});
$('.slider-arrow').html('»').removeClass('hide').addClass('show');
}
});
});
希望这是有道理的。
您可以使用
mouseout
或mouseleave
。我想你会在panel
中添加一些元素.因此,当指针移出子元素时也会触发mouseout
,而mouseleave
仅在指针移出绑定元素时触发
$('.panel').mouseleave(function() {
if($('.slider-arrow').hasClass('hide')){
$( ".slider-arrow, .panel" ).animate({
right: "-=300"
}, 700);
$('.slider-arrow').html('»').removeClass('hide').addClass('show');
}
});
您可以在面板上附加 jquery .mouseleave() 函数,并让它仅在面板可见时才执行 还可以添加一个类似"visible"的类来保持面板的可见性状态,如下所示: http://jsfiddle.net/gakuru/d2qnrm2x/
$('.panel').on('mouseleave',function(){
if($(this).hasClass('visible')){
$( ".slider-arrow, .panel" ).animate({
right: "-=300"
}, 700, function() {
// Animation complete.
});
$('.slider-arrow').html('»').removeClass('hide').addClass('show');
$('.panel').removeClass('visible');
}
});
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 如果鼠标离开父对象,则隐藏元素
- 保持状态打开”;在背景中”;.隐藏,但不要't在Angular UI中离开状态
- 点击显示鼠标的Jquery离开隐藏侧边栏
- 如何在单击项目时隐藏菜单,或在有人单击离开时隐藏菜单
- Jquery 菜单在鼠标离开时不隐藏
- Popover在离开Opera 12中的文本框时没有隐藏
- 如何在单击时和用户单击离开时使用 jquery 隐藏元素
- JS隐藏html内容时,鼠标离开内容区
- 当鼠标进入/离开图像时显示隐藏按钮
- 我有一个元素在鼠标悬停时显示,现在我想在鼠标离开时隐藏它.我该怎么做呢?
- 隐藏列表元素,如果他们离开屏幕
- 当用户离开文本框时隐藏链接按钮
- JSF正在优化我的<h: 隐藏输入>离开
- jQuery显示鼠标离开后隐藏延迟仍在运行
- 当jquery-ui-draggable的父项在排序过程中隐藏在屏幕之外时,光标会离开该排序项
- jQuery在鼠标悬停时显示框,在鼠标离开时隐藏