我在代码学院的jQuery课程结束时正在研究我的“非常自己的项目”,但我现在已经陷入困境。
这是我的js / jQ代码:
$(document).ready(function () {
$('.Left1').click(function () {
$('.content1').slideToggle('slow');
});
$('.PilLine1').mouseenter(function () {
$(this).fadeTo(500, 1);
});
$('.PileLine1').mouseleave(function () {
if ($('.content1').show('false')) {
$('.PileLine1').fadeTo(500, 0.3);
}
else$('.PileLine1').fadeTo(500, 1);
});
});
这是一个视觉预览: http://www.codecademy.com/users/5155e412f38e624ec7000116/projects/500c7558d143430002002551
好吧,好吧它没有按照我想要的方式运作。我希望我的if / else语句检查如果我的框(content1)是否可见。 如果它是可见的和mouseleave;我希望我的PilLine1能够保持100%的不透明度。 if else mouseleave并关闭;我希望我的PilLine1淡出30%的不透明度。 我应该使用: if($('.content1').show('false'))
还是if($('.content1').css('display'==='none'))
还是我完全失去了?
答案 0 :(得分:3)
jQuery' s .is()
wlil 针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。
if($('.content1').is(':visible'))
:visible:
方法将检查display: none
,如果不是display:none
,则返回true。
在利用不透明度或可见性时,这可能会出现问题,但
具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。在隐藏元素的动画期间,该元素在动画结束前被视为可见。在显示元素的动画期间,该元素在动画开始时被视为可见。