是否可以用 javascript/jQuery 交换一段文本?我想要一个大约 5 秒的延迟计时器,然后文本应该换成其他东西,比如图像幻灯片。带有淡入淡出或效果会很棒,但无论如何都可以。你能指出我正确的方向或帮助我吗?
问问题
5796 次
5 回答
1
这是在没有 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()
});
于 2011-07-05T13:24:32.857 回答
1
您也可以使用 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>
于 2011-07-05T12:33:03.010 回答
1
setTimeout(function() {
$('#target').html('New Text');
}, 5000); // <- 5 seconds
如果你想更进一步
setInterval(function() {
// do some change that will happen every 5 seconds
}, 5000); // <- 5 seconds
于 2011-07-05T12:26:14.720 回答
0
function changeText(){
document.getElementById('my_div_id').innerHTML = 'text_to_display';
}
您可以实现 changetext 以获得一个字符串数组,您可以在下一个函数中对其进行迭代:
function timingex( ){
setTimeout("changeText()",5000);
}
于 2011-07-05T12:28:11.990 回答
0
将您想要淡入的内容(我们可以将其命名#box
)放在<p>
. 用 隐藏它display:none;
。然后使用例如:
function() {
$("#box").delay(5000).fadeIn("slow");
}
于 2011-07-05T12:30:39.403 回答