2015-07-07 2 views
1

Я пытаюсь остановить анимацию fadeTo(). У меня есть блок из 4-х фотографий, где 3 из них (непокрытый) должны потемнеться, а зависание остается непрозрачным. К сожалению, код, который я до сих пор делал, каждый, включая зависание, превращается в темный, вверх ". Вместо этого я просто хочу, чтобы он остался на уровне 100% в первую очередь, потому что все остальное делает сайт неприемлемым.jQuery stop fadeTo()

То, что я до сих пор:

$("#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(); 
        } 
      ); 


    }); 

Я возился много с (правда, ложными) утверждениями в стопе() вызовом, но не имели никакого успеха с любой комбинацией до сих пор ,

+1

Можете ли вы добавить ссылку Jsfiddle? – Joci93

+0

В настоящее время угасание не отображается на скрипке, просто нужно немного капсулировать код, PLS ждать – user2875404

+0

Возможный дубликат [JQuery stop fadeTo effect] (http://stackoverflow.com/questions/7496564/jquery-stop-fadeto- эффект) –

ответ

0

Хорошо, я все еще ничего не знаю о веб-разработчике (я - разработчик приложения), но то, что я сейчас сделал, это передать элемент методу 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(); 
        } 
      ); 


    }); 

    });