jQuery - fadeTo () - как мне заставить его исчезать все больше и больше при каждом вызове события?

0

Я пытаюсь написать сценарий, который сначала уменьшит изображение до 80%, затем 60% и т.д. Вплоть до 1%, но когда я вызываю событие (.click), все, что я получаю, сделку, где она идет к моей установленной непрозрачности. как я могу продолжать? заранее спасибо. вот мой код:

<html>
<center><img 

src="image1.jpg"
id="1"><br><img src="image2.jpg" 

width="500" height-"500" id="2" ></img></center>

</html>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>


$(document).ready(function() {

   $("#2").click(function() {

      $("#1").fadeTo(500,.3);


   });

});

</script>
Теги:

4 ответа

0
Лучший ответ

Вы можете отслеживать переменную, которая увеличивается при каждом вызове:

var x=1;
$(document).ready(function() {  
   $("#2").click(function() {
      if((x*.75)>(.01)){
      x=x*.75; //whatever desired pattern       
      }
      $("#1").fadeTo(500, x);
   });

});
  • 0
    Добавление к непрозрачности противоположно тому, чего я хочу, я верю.
  • 0
    Большое спасибо за asnwer, скоро приму, было интересно, есть ли какой-нибудь способ не дать ху исчезнуть весь путь? например, если я хочу, чтобы он пошел на .1 и остановился?
Показать ещё 3 комментария
2

Это должно сделать трюк.

$(document).ready(function() {
   $("#2").click(function() {
      if($("#1").css("opacity")>.2) {
        $("#1").fadeTo(500,$("#1").css("opacity")-.2);
      } else {
        $("#1").fadeTo(500, .01);
        $("#2").unbind("click");
      }
   });
});
  • 0
    Это не остановится на 1%, как описано в соответствии с его требованием.
  • 0
    Проверьте мою правку ...
1

Либо отслеживайте текущую непрозрачность с помощью переменной, либо получаете текущую непрозрачность с помощью jquery, например var opacity = $ ('elemFoo'). Css ('opacity');

затем уменьшите opacityby желаемого уровня.

var opacity= $('elemFoo').css('opacity');
if(opacity > 0.2){
  $('elemFoo').faceTo(opacity - 0.2);
}
0

Что-то вроде этого:

var opacity = 1;

$("#2").click(function() {
    opacity = opacity * .75;

    $("#1").fadeTo(500, opacity);
});

Это уменьшит непрозрачность на 25% от текущей непрозрачности каждого щелчка. Вы можете изменить расчет, чтобы настроить, насколько дополнительно он исчезает каждый раз.

http://jsfiddle.net/MPd3x/1/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню