JQuery исчезают к новому изображению

Если метод equals() присутствует в классе java.lang.Object, и ожидается, что он проверяет эквивалентность состояния объектов! Это означает, что содержимое объектов. В то время как ожидается, что оператор == проверяет, что фактические экземпляры объекта одинаковы или нет.

Пример

Рассмотрим две различные ссылочные переменные, str1 и str2:

str1 = new String("abc");
str2 = new String("abc");

Если вы используете equals()

System.out.println((str1.equals(str2))?"TRUE":"FALSE");

, вы получите выход как TRUE, если вы используете ==.

System.out.println((str1==str2) ? "TRUE" : "FALSE");

Теперь вы получите вывод FALSE в качестве вывода, потому что оба str1 и str2 указывают на два разных объекта, хотя оба они имеют одинаковое строковое содержимое. Именно из-за new String() каждый новый объект создается каждый раз.

13
задан user149109 29 December 2009 в 23:25
поделиться

4 ответа

В простейшем случае вам нужно будет использовать обратный вызов на вызов на fadeOut().

Предположим, что тег изображения уже на странице:

<img id="image" src="http://sstatic.net/so/img/logo.png" />

Вы передаете функцию в качестве аргумента обратного вызова в fadeOut(), которая сбрасывает атрибут src и затем затухает обратно, используя fadeIn():

$("#image").fadeOut(function() { 
  $(this).load(function() { $(this).fadeIn(); }); 
  $(this).attr("src", "http://sstatic.net/su/img/logo.png"); 
}); 

Для анимации в jQuery, обратные вызовы выполняются после завершения анимации. Это дает вам возможность создавать цепочку анимации последовательно. Обратите внимание на вызов load(). Это гарантирует, что изображение будет загружено перед повторным затуханием (благодаря Y. Shoham).

Вот рабочий пример

30
ответ дан 1 December 2019 в 17:51
поделиться

Вы уверены, что используете обратный вызов , который вы передаете в fadeOut , чтобы изменить источник attr, а затем вызываете fadeIn? Вы не можете вызывать fadeOut, attr() и fadeIn последовательно. Вы должны подождать, пока fadeOut не завершится...

.
1
ответ дан 1 December 2019 в 17:51
поделиться
$("#main_image").fadeOut("slow",function(){
    $("#main_image").load(function () { //avoiding blinking, wait until loaded
        $("#main_image").fadeIn();
    });
    $("#main_image").attr("src","...");
});
7
ответ дан 1 December 2019 в 17:51
поделиться

Ну, вы можете поместить следующее изображение за текущее, и fadeOut текущее так, чтобы оно выглядело, как будто затухает в следующее изображение.

Когда затухание завершено, вы можете поменять местами изображения. Итак, примерно:

<style type="text/css">

.swappers{
    position:absolute;
    width:500px;
    height:500px;
}

#currentimg{
    z-index:999;
}

</style>

<div>
    <img src="" alt="" id="currentimg" class="swappers">
    <img src="" alt="" id="nextimg" class="swappers">
</div>

<script type="text/javascript">
    function swap(newimg){
        $('#nextimg').attr('src',newimg);
        $('#currentimg').fadeOut(
            'normal',
            function(){
                $(this).attr('src', $('#nextimg').attr('src')).fadeIn();
            }
        );
    }
</script>
7
ответ дан 1 December 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: