Смена текста по времени? - PullRequest
2 голосов
/ 05 июля 2011

возможно ли поменять абзац текста с помощью javascript / jQuery?Я хочу, чтобы таймер задержки составлял около 5 секунд, а затем текст должен был переключиться на что-то другое, например, слайд изображения.Было бы здорово с исчезновением или эффектом, но что бы ни работало.Можете ли вы указать мне правильное направление или помочь мне?

Ответы [ 5 ]

1 голос
/ 05 июля 2011

Вот как выполнить цикл без setTimeout или setInterval

ДЕМО ЗДЕСЬ

<div id="textMessage"></div>
<div class="textContent" style="display:none">Lorem ipsum dolor sit amet</div>
<div class="textContent" style="display:none">In sit amet diam et arcu aliquam tincidunt. </div>

function slide() {
  if (cnt>=texts.length) cnt=0;
  $('#textMessage').html(texts[cnt++]);
  $('#textMessage')
    .fadeIn('slow').animate({opacity: 1.0}, 3000).fadeOut('slow',
     function() {
       return slide()
     }
  );      
}      
$(document).ready(function() {
  // save the texts in an array for re-use
  $(".textContent").each(function() {
    texts[cnt++]=$(this).text();
  });
  slide()  
});
1 голос
/ 05 июля 2011

Вот, пожалуйста,

Вы также можете вызвать функцию с помощью setTimeout

Редактировать

Вот настроенная демка, без клика и с интервалом

Редактировать 2 :

Скопируйте сюда вставленный код на случай, если jsfiddle выйдет из строя.

<div class="texts">
  <p class="text text_1">text 1</p>
  <p class="text text_2">text 2</p>  
</div>

<script>
  setInterval(function(){
    var toggle = $(".text").hasClass("toggled");
    $(".text_1").animate({opacity: toggle ? 1 : 0});
    $(".text_2").animate({opacity: toggle ? 0 : 1});
    $(".text").toggleClass("toggled");
  }, 1000);
</script>

<style type="text/css">
.texts {
    position: relative;
}

.text {
    position: absolute;
    top: 0;
    left: 0;
}

.text_1{
    opacity: 1
}

.text_2{
   opacity: 0;
}
</style>
1 голос
/ 05 июля 2011
setTimeout(function() {
  $('#target').html('New Text');
}, 5000); // <- 5 seconds

и если вы хотите продолжить,

setInterval(function() {
  // do some change that will happen every 5 seconds
}, 5000); // <- 5 seconds
0 голосов
/ 05 июля 2011

Поместите ваш контент, который вы хотите добавить (мы можем назвать его #box), прямо над <p>. Скройте это с display:none;. Затем используйте, например:

function() {
    $("#box").delay(5000).fadeIn("slow");
}
0 голосов
/ 05 июля 2011
function changeText(){
     document.getElementById('my_div_id').innerHTML = 'text_to_display';
}

вы можете реализовать changetext, чтобы иметь массив строк, для которого вы выполняете итерацию внутри следующей функции:

function timingex( ){
    setTimeout("changeText()",5000);
}
...