jQuery stop fadeTo()

时间:2015-07-07 09:11:22

标签: javascript jquery

我正在尝试停止fadeTo()动画。我有一块4张照片,其中3张照片(未打开的)应该变暗,而徘徊在不透明度为1。不幸的是,到目前为止,我所拥有的代码使得每一个,包括在此之前徘徊的一匝变暗再说一次。相反,我只是希望它在第一时间保持100%,因为其他一切都使网站看起来没有反应。

到目前为止我所拥有的是:

$("#submenu").load("submenu.html", function(){
    function darken(){; 
    $("#submenu li").find("img").fadeTo( 100, 0.20  );
    }   

    function brighten(){
$("#submenu li").find("img").fadeTo( 100, 1.00  );
    }   

    $('#submenu li').each(function(index) {

            $(this).hover(
                  function () {
                    darken();

            //       $(this).stop(1,0).fadeTo(100, 0.20);
// if I do this ^ this image stays dark, even when hovered, and stays black when unhovered

           //        $(this).stop(1,0).fadeTo(100, 0.20);
// this ^ has no effect on the image whatsoever and it stays dark if I remove the line below

                $(this).find("img").fadeTo( 100, 1.00  );
// keeping this ^ line, it shows the behavior as stated in the question
                  }, 
                  function () {
                    brighten ();  
                  }
            );


    });

我在stop()调用中对(true,false)语句进行了很多讨论,但到目前为止还没有任何组合成功。

1 个答案:

答案 0 :(得分:0)

好吧我对web dev(我是app dev)一无所知,但我现在所做的是将元素传递给darken()方法,因此它知道“不要”变暗的内容。将在清理后发布代码。

$("#submenu").load("submenu.html", function(){

    function darken(topkek){

        $.each($('#submenu ul li'), function( index, value ) {
            if(topkek.innerHTML!=$(this).html()){
                $(this).find("img").stop(true).fadeTo( 100, 0.40  );
            }
// I think one couldn't have done this worse than here but if it look stupid and it work, it ain't stupid
        }); 
    }   


    function brighten(){
        $("#submenu li").find("img").stop(true).fadeTo( 450, 1.00  );
    }   

    $('#submenu li').each(function(index) {

            $(this).hover(
                  function () {
                    darken(this);                   
                  }, 
                  function () {
                    brighten ();  
                  }
            );


    });

    });