1

我想使用 jQuery 在单击按钮时在 0.3 和 1.0 之间切换元素的不透明度。
我遇到的问题是以 0.3 的不透明度开始元素,然后在第一次单击时,以 1.0 的不透明度使其完全可见。我尝试过的代码如下:

$(document).ready(function(){

    //Start faded to 0.3
    $(".fadingElement").fadeTo(0, 0.3);

    //When the trigger is clicked first, fade the relevant item back up to 1.0
    $("div.trigger").toggle(
        function(){ 
            $(this).parent().next().fadeTo('fast', 1.0);
        }, 
        function () {  
            $(this).parent().next().fadeTo('fast', 0.3);
        }
    );
});

单击“div.trigger”时,它不会淡出,再次单击时,它会进一步淡出0.3!当第三次点击时,它会淡出到它的起始 0.3。

如何从 0.3 开始元素,并在第一次单击时将其恢复为完全可见 (1.0)?这里发生了什么?

4

2 回答 2

1

问题(基于你小提琴中的代码)是你真正想要淡入淡出的元素是<div class="student_notified">,但你的代码正在淡化它的父元素div而不是它div本身。

您可以使用该find方法在其父元素中选择正确的元素:

$(this).parent().next().find(".student_notified").fadeTo('fast', 0.3);

这是一个更新的小提琴

于 2011-08-02T09:22:46.103 回答
0

您可以简单地使用.animate()with.css('opacity',value)来实现该行为

例子:

$("div.trigger").toggle(
$(this).parent().next();
    $(this).parent().next().animate({opacity:1.0});
}, 
function () {  
    $(this).parent().next().animate({opacity:0.3});
   });
}
);
于 2011-08-02T08:41:57.087 回答