有任何想法吗? Mouseenter / Mouseleave(我被困)

时间:2013-04-29 19:41:19

标签: javascript jquery

我在代码学院的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')) 还是我完全失去了?

1 个答案:

答案 0 :(得分:3)

jQuery' s .is() wlil 针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。

if($('.content1').is(':visible'))

:visible:方法将检查display: none,如果不是display:none,则返回true。

在利用不透明度或可见性时,这可能会出现问题,但

具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。在隐藏元素的动画期间,该元素在动画结束前被视为可见。在显示元素的动画期间,该元素在动画开始时被视为可见。