仅当侧边栏完全展开时显示文本
Show text only if sidebar fully expands
我有一个侧边栏,当鼠标悬停在它上面时,它会展开。一旦它展开,我希望文本出现。当我不再将鼠标悬停在侧边栏上时,我希望文本消失。这很简单,除了一个我遇到麻烦的情况。
问题:正如我目前所配置的,如果我随意地将鼠标悬停在侧边栏上,但在侧边栏展开之前退出,文本就会出现在折叠的侧边栏中。这是一个小麻烦,但我想知道是否有一种方法只在栏完全展开后才显示文本。我想我可能可以使用.on()
事件来观察侧边栏扩展到其完整大小,但这似乎不必要地沉重(也许我错了)。
不管怎样,这是我的密码。如有任何提示,我们将不胜感激。
$('div#sidebar-wrapper div#logospace span#nus').hide();
$("div#sidebar-wrapper").mouseenter(function() {
$(this).animate({
left: 0
});
$('div#sidebar-wrapper div#logospace span#nus').delay(800).fadeIn(500);
});
$('div#sidebar-wrapper').mouseleave(function() {
$('div#sidebar-wrapper div#logospace span#nus').fadeOut(500);
$(this).animate({
left: -127
});
});
span#nus {
color: #38353D;
}
#sidebar-wrapper {
// background-image: url("/assets/homebg.png");
background: #2DBE60;
// margin-left: -150px;
/* left: 70px; */
width: 180px;
position: fixed;
height: 100%;
z-index: 10000;
transition: all .4s ease 0s;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow: hidden
}
#sidebar_menu li a,
.sidebar-nav li a {
color: #ddd;
// display: block;
text-decoration: none;
width: 170px;
border-bottom: 1px solid #1A1A1A;
-webkit-transition: background .5s;
-moz-transition: background .5s;
-o-transition: background .5s;
-ms-transition: background .5s;
transition: background .5s;
}
.sidebar-nav li a:hover {
color: #fff;
background: rgba(255, 255, 255, 0.2);
text-decoration: none;
}
#sidebar-wrapper div#logospace {
margin-top: 15px;
}
div#sidebar-wrapper div#logospace {
height: 60px;
}
div#sidebar-wrapper div#logospace img {
position: fixed;
left: 0px;
margin-left: 8px;
width: 35px;
}
#sidebar-wrapper div#logospace span#nus {
// visibility: hidden;
font-size: 40pt;
font-weight: bold;
left: 46px;
position: absolute;
top: 12px;
}
#sidebar-wrapper a.link {
left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sidebar-wrapper" class="dashboard" style="left: -127px;">
<div id="logospace">
<img src="/assets/initial.svg">
<span id="nus" style="display: none;">Appear</span>
</div>
</div>
您可以在动画完成后显示注释
$('div#sidebar-wrapper div#logospace span#nus').hide();
$("div#sidebar-wrapper").hover(function() {
$(this).animate({
left: 0
}, function(){
$('div#sidebar-wrapper div#logospace span#nus').clearQueue()
.stop().delay(800).fadeIn(500);
});
}, function(){
$('div#sidebar-wrapper div#logospace span#nus').clearQueue()
.stop().fadeOut(500);
$(this).animate({
left: -127
});
});
span#nus {
color: #38353D;
}
#sidebar-wrapper {
// background-image: url("/assets/homebg.png");
background: #2DBE60;
// margin-left: -150px;
/* left: 70px; */
width: 180px;
position: fixed;
height: 100%;
z-index: 10000;
transition: all .4s ease 0s;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow: hidden
}
#sidebar_menu li a,
.sidebar-nav li a {
color: #ddd;
// display: block;
text-decoration: none;
width: 170px;
border-bottom: 1px solid #1A1A1A;
-webkit-transition: background .5s;
-moz-transition: background .5s;
-o-transition: background .5s;
-ms-transition: background .5s;
transition: background .5s;
}
.sidebar-nav li a:hover {
color: #fff;
background: rgba(255, 255, 255, 0.2);
text-decoration: none;
}
#sidebar-wrapper div#logospace {
margin-top: 15px;
}
div#sidebar-wrapper div#logospace {
height: 60px;
}
div#sidebar-wrapper div#logospace img {
position: fixed;
left: 0px;
margin-left: 8px;
width: 35px;
}
#sidebar-wrapper div#logospace span#nus {
// visibility: hidden;
font-size: 40pt;
font-weight: bold;
left: 46px;
position: absolute;
top: 12px;
}
#sidebar-wrapper a.link {
left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sidebar-wrapper" class="dashboard" style="left: -127px;">
<div id="logospace">
<img src="/assets/initial.svg">
<span id="nus" style="display: none;">Appear</span>
</div>
</div>
.animate()
有几个可用的回调函数。这意味着您可以在动画完成后、期间甚至之前执行代码。有关详细信息,请查看.jquery文档中的.animate()。
我会这样写你的代码:
$('div#sidebar-wrapper div#logospace span#nus').hide();
$("div#sidebar-wrapper").mouseenter(function() {
$(this).stop().animate({
left: 0
}, function() {
$('div#sidebar-wrapper div#logospace span#nus').fadeIn();
});
});
$('div#sidebar-wrapper').mouseleave(function() {
$(this).stop().animate({
left: -127
}, function() {
$('div#sidebar-wrapper div#logospace span#nus').fadeOut();
});
});
小提琴
相关文章:
- xmlhttp.responseText不显示文本
- 如何在MVC中使用jQuery在文本框旁边显示文本
- 根据页面的位置突出显示文本中的字符
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 操作javascript变量[HTML]以只显示文本
- 如何显示文本长度,即使它超过ng最大长度
- 如何在悬停时显示文本而不移动页面上的内容
- ASP.NET MVC,在文本框旁边显示文本
- 可单击滚动图像以显示文本框
- 使用鼠标悬停JavaScript/HTML显示文本
- 延迟高亮显示文本区域中的文本
- 选择“选择选项”时显示文本.怎么做
- 无法使用JavaScript在画布上显示文本
- 在不更改HTML源代码的情况下,在管理员TinyMCE编辑器中突出显示文本
- 将鼠标悬停在图像上时显示文本
- javascript:在for循环中使用settimeout来定期显示文本
- 一页主题搜索/用下一个按钮突出显示文本
- JavaScript 在更改选择时不显示文本区域
- 用于突出显示文本的JQuery/JavaScript插件
- 模式显示文本区域内容不是字符串