Jquery为缩略图(选定缩略图除外)设置不透明度动画

Jquery为缩略图(选定缩略图除外)设置不透明度动画,jquery,toggle,jquery-animate,thumbnails,Jquery,Toggle,Jquery Animate,Thumbnails,我有一组缩略图,当选择另一个缩略图时,我希望将其减少到40%。原始缩略图将保持100%不透明度。我需要有一个通用版本的淡出缩略图,以便在页面上的任何地方点击将使其他拇指回到100%不透明 以下是演示: Js: HTML 谢谢 我会使用一个CSS类为缩略图指定40%不透明度,另一个为100%不透明度 当我想淡入所有内容时,我会使用jQuery$(“.thumb40”)或类似的工具来选择淡入的内容,并使用jQuery函数在类之间淡入,将它们的CSS类设置为.thumb100 要淡出除当前代码外的

我有一组缩略图,当选择另一个缩略图时,我希望将其减少到40%。原始缩略图将保持100%不透明度。我需要有一个通用版本的淡出缩略图,以便在页面上的任何地方点击将使其他拇指回到100%不透明

以下是演示:

Js:

HTML



谢谢

我会使用一个CSS类为缩略图指定40%不透明度,另一个为100%不透明度

当我想淡入所有内容时,我会使用jQuery
$(“.thumb40”)
或类似的工具来选择淡入的内容,并使用jQuery函数在类之间淡入,将它们的CSS类设置为
.thumb100

要淡出除当前代码外的所有代码,请使用类似的jQuery,
.thumb100
,但要检查代码,以确保要更改为
.thumb40
的代码不是您正在选择的代码


至于点击离开,我自己也很好奇。

修改jQuery如下:

    $("div#fadeout .stashthumb").click(function (e) {
    $(".stashthumb").animate({opacity: 1},300);    
            $(this).siblings().stop().animate({opacity: 0.4}, 300);   
            e.stopPropagation();
    });
$("body #fadeout:not(.stashthumb)").click(function () {
    $(".stashthumb").animate({opacity: 1},300);
});

下面是一个基于DigitWorld答案的工作示例

$("div#fadeout .stashthumb").click(function (e) {
    e.stopPropagation(); // This will stop the click bubbling up to the body
    $(this).removeClass('thumb40').addClass('thumb100');
    $('.stashthumb').not(this).removeClass('thumb100').addClass('thumb40');
});

$(body).click(function() {
    $('.stashthumb').removeClass('thumb40').addClass('thumb100');
});

将您的javascript更改为(我认为这是您想要的行为,您的问题对我来说不是100%清楚):


我认为DigitWorld建议使用toggleClass来获得淡入淡出的效果,但除此之外它是有效的。事实上,我是。我的意思是,有很多方法可以做到这一点,我确信,我只是想做一个快速的jQuery。如果他们单击另一个块元素,那么$(body)单击解决方案是否有效?我假设它依赖于事件冒泡?它确实依赖于冒泡,因此只要其他元素没有StopRopAgation,它就可以工作。它可以工作在任何没有自己的click事件的元素上,StopRopAgation在内部调用。该死的@Tesserex,打败我吧!:D这部分工作正常,但他还希望点击页面上的任意位置,将它们全部恢复到100%。[更新]谢谢,这在另一方面非常有用。我也很感兴趣的是,当你点击拇指外侧时,所有的拇指都会回复到100%。这需要在容器上设置一个图像覆盖吗?我会修改小提琴,包括点击其他地方,将不透明度恢复到100%。看起来不错。我个人仍然会使用该类作为选择器(然后使用not()删除单击的项),而不是同级,以防页面结构的更改在将来停止工作。我个人也会这样做。我只是尽可能地保持它与原作的相似。很好!干得好,泰塞雷斯。您是否有可能在淡出事件期间添加光标:指向主体的指针。。。我喜欢显示可点击的区域。应该只能够添加$(body.css('cursor','pointer');单击缩略图事件。然后是$(body.css('cursor','');在正文中单击。
    $("div#fadeout .stashthumb").click(function (e) {
    $(".stashthumb").animate({opacity: 1},300);    
            $(this).siblings().stop().animate({opacity: 0.4}, 300);   
            e.stopPropagation();
    });
$("body #fadeout:not(.stashthumb)").click(function () {
    $(".stashthumb").animate({opacity: 1},300);
});
$("div#fadeout .stashthumb").click(function (e) {
    e.stopPropagation(); // This will stop the click bubbling up to the body
    $(this).removeClass('thumb40').addClass('thumb100');
    $('.stashthumb').not(this).removeClass('thumb100').addClass('thumb40');
});

$(body).click(function() {
    $('.stashthumb').removeClass('thumb40').addClass('thumb100');
});
$(function() {           
    $("div#fadeout .stashthumb").click(function (event) {             
        $(this).siblings().stop().animate({opacity: 0.4}, 300);       
        $(this).stop().animate({opacity: 1.0}, 300); 
        event.stopPropagation();     // don't fire the body click handler
    });

    // here's the "anywhere on the page" part you wanted
    $("body").click(function() {
        $("#fadeout .stashthumb").stop().animate({opacity: 1.0}, 300);
    });   
});