0

在代码学院的 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 语句检查我的 box(content1) 是否可见。如果它是可见的并且鼠标离开;我希望我的 PilLine1 保持 100% 的不透明度。if else mouseleave 并关闭;我希望我的 PilLine1 淡出 30% 的不透明度。

我应该使用: if($('.content1').show('false'))还是if($('.content1').css('display'==='none')) 我完全迷路了?

4

1 回答 1

3

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

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

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

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

具有 visibility: hidden 或 opacity: 0 的元素被认为是可见的,因为它们仍然占用布局中的空间。在隐藏元素的动画期间,该元素被认为是可见的,直到动画结束。在显示元素的动画期间,该元素被认为在动画开始时可见。

于 2013-04-29T19:54:48.283 回答