Есть ли более простой способ переключить 2 или более видимость текста? Когда я использовал метод .toggle()
, текст вскакивает вверх и вниз, потому что они одновременно переключаются. С .fadeIn()
и .fadeOut()
он работает правильно, но код грязный.Переключить текст на JavaScript
var triggerTitle = function() {
var hasClassHide = $(".hero-title.1").hasClass("hide");
if (hasClassHide) {
$(".hero-title.1").removeClass("hide");
$(".hero-title.1").fadeIn(1000);
$(".hero-title.2").addClass("hide");
$(".hero-title.2").fadeOut(1000);
$(".hero-title.2").css("display", "none");
} else {
$(".hero-title.2").removeClass("hide");
$(".hero-title.2").fadeIn(1000);
$(".hero-title.1").addClass("hide");
$(".hero-title.1").fadeOut(1000);
$(".hero-title.1").css("display", "none");
}
};
setInterval(triggerTitle, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 class="hero-title 1">WEB DEVELOPER</h1>
<h1 class="hero-title 2 hide" style="display: none;">WEB DESIGNER</h1>
Если вы поместили код в фрагмент, его можно попробовать прямо на этой странице :) – ByteHamster
Я не понимаю, что вы хотите, но для 'fadeIn' и' fadeout' вам не нужно устанавливать также ' css ("display", "none") '. –
попробуйте вот так: 'if (hasClassHide) { $ (". Hero-title.1 "). RemoveClass (" hide "); $ (". Hero-title.2"). FadeOut (1000); $ (". Hero-title.1"). FadeIn (1000); $ (". Hero-title.2"). AddClass ("hide"); } else { $ (". Hero-title.2"). RemoveClass ("hide"); $ (". Hero-title.1"). FadeOut (1000); $ (". Hero-title.2"). FadeIn (1000); $ (". Hero-title.1"). AddClass ("hide"); } ' –