Jquery 如何实现淡入/淡出更改文本行?
我正试图做这里所说明的事情:但因为我不在我的舒适区内,没有详细说明的部分正在阻止我自己实现它。具体来说,我需要知道Jquery包含的内容是什么,如何插入Javascript,以及如何调用它。让我告诉你我现在在猜测什么 我在文件的开头加上:Jquery 如何实现淡入/淡出更改文本行?,jquery,html,Jquery,Html,我正试图做这里所说明的事情:但因为我不在我的舒适区内,没有详细说明的部分正在阻止我自己实现它。具体来说,我需要知道Jquery包含的内容是什么,如何插入Javascript,以及如何调用它。让我告诉你我现在在猜测什么 我在文件的开头加上: <script type="text/javascript" src="js/jquery-1.3.1.min.js"></script> 我有这个文件的本地副本,它可以与其他元素一起工作-测试,所以上面的内容看起来不错 在JSF
<script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
我有这个文件的本地副本,它可以与其他元素一起工作-测试,所以上面的内容看起来不错
在JSFIDLE站点上提供的Javascript中,我添加了:
<script type="text/javascript">
.
.
.
</script>
.
.
.
因此,从字面上讲,我的页面主体包含:
<script type="text/javascript">
var terms = ["term 1", "term 2", "term 3"];
function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(200, rotateTerm);
}
$(rotateTerm);
</script>
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
var术语=[“术语1”、“术语2”、“术语3”];
函数旋转计(){
var ct=$(“旋转”)。数据(“术语”)| 0;
$(“#旋转”).data(“term”,ct==terms.length-1?0:ct+1).text(terms[ct]).fadeIn()
延迟(2000)。衰减(200,旋转计);
}
$(旋转计);
最后我的猜测是用一具尸体来称呼它:
<body onload="rotateTerm()">
当然,HTML正文包含:
<script type="text/javascript">
var terms = ["term 1", "term 2", "term 3"];
function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(200, rotateTerm);
}
$(rotateTerm);
</script>
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
这里有一句话,这就是变化
因此,我尽可能地(我认为)遵循这个例子。发生的情况是页面呈现
这里有一个句子:术语2是变化的内容
没有衰减的上升或下降,它不会显示“this”、“term 1”或“term 3”,尽管看起来“term1”在毫秒内就过去了
我做错了什么?在这里握一只小手可以走很长的路
谢谢你的期待 我不确定我是否正确理解了你的问题,但如果一份文件就是你想要的,那就这样吧:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
var terms = ["term 1", "term 2", "term 3"];
function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(200, rotateTerm);
}
// Not needed anymore as the DOM is ready at this point
// $(rotateTerm);
// just call the function directly
rotateTerm();
</script>
</body>
</html>
这里有一句话这是什么变化
var术语=[“术语1”、“术语2”、“术语3”];
函数旋转计(){
var ct=$(“旋转”)。数据(“术语”)| 0;
$(“#旋转”).data(“term”,ct==terms.length-1?0:ct+1).text(terms[ct]).fadeIn()
延迟(2000)。衰减(200,旋转计);
}
//不再需要了,因为DOM已经准备好了
//$(旋转计);
//直接调用函数即可
旋转计();
就我个人而言,我会做完全不同的脚本,尤其是数据存储是不必要的imho。
你需要解释一下代码吗?我写了一篇演练,解释了你的小提琴在做什么:。既然如此不赞成只链接的答案,这里有一个快速而肮脏的解决方案 像这样包括jQuery,就在结束标记之前。请注意,您使用的是jQuery1.3.1,其中包括jQuery1.11.0。我建议您尽可能使用最新版本的jQuery,因为它会有更少的bug和更多的功能:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
在包含jQuery之后立即包含脚本:
<script>
var terms = ["term 1", "term 2", "term 3"];
function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct]).fadeIn()
.delay(2000).fadeOut(200, rotateTerm);
}
$(rotateTerm);
</script>
var术语=[“术语1”、“术语2”、“术语3”];
函数旋转计(){
var ct=$(“旋转”)。数据(“术语”)| 0;
$(“#旋转”).data(“term”,ct==terms.length-1?0:ct+1).text(terms[ct]).fadeIn()
延迟(2000)。衰减(200,旋转计);
}
$(旋转计);
您不需要
-多亏了jQuery,脚本将尽快运行。和的答案都是正确的,因为两个答案使用的jQuery版本都高于您的问题(请参阅):
这里有一句话这是什么变化
var术语=[“术语1”、“术语2”、“术语3”];
函数旋转计(){
var ct=$(“#rotate”).data(“term”)| | 0;//获取当前项,如果没有当前项,则默认为0
$(“#rotate”)//查找id=“rotate”(span)的元素
.data(“term”,ct==terms.length-1?0:ct+1)//存储下一个term,根据需要循环到数组的开头
.text(术语[ct])//设置跨度的文本
.fadeIn()//将元素从完全透明淡入
.delay(2000)//等待2秒我已经用CSS动画完成了。你可以试试这个
<!DOCTYPE html>
<html>
<head>
<style>
#rotate{animation: fadeIn 2s infinite;}
@keyframes fadeIn{
from {opacity: 0;}
to {opacity: 1;}
}
</style>
</head>
<body>
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var terms = ["term 1", "term 2", "term 3"];
var count = 0;
function setText(){
$("#rotate").text(terms[count]);
count++;
if(count>=terms.length){
count=0;
}
}
var callFunction = setInterval(setText,2000);
setText();
});
</script>
</body>
</html>
#旋转{动画:fadeIn 2s无限;}
@关键帧淡入淡出{
从{opacity:0;}
到{opacity:1;}
}
这里有一句话这是什么变化
$(文档).ready(函数(){
var术语=[“术语1”、“术语2”、“术语3”];
var计数=0;
函数setText(){
$(“#旋转”).text(术语[计数]);
计数++;
如果(计数>=术语长度){
计数=0;
}
}
var callFunction=setInterval(setText,2000);
setText();
});
jQuery版本,与Frank Anderson所寻求的效果相同
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Here is a sentence <span id="rotate">this</span> is what changes</p>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var terms = ["term 1", "term 2", "term 3"];
var count = 0;
function setText(){
$("#rotate").text(terms[count]).animate({opacity: 0}, 1000, function() {
$(this).animate({opacity:1},1000);
setText();
});
count++;
if(count>=terms.length){
count=0;
}
}
setText();
});
</script>
</body>
</html>
这里有一句话这是什么变化
$(文档).ready(函数(){
var术语=[“术语1”、“术语2”、“术语3”];
var计数=0;
函数setText(){
$(“#旋转”).text(术语[count]).animate({opacity:0},1000,function(){
设置动画({opacity:1},1000);
setText();
});
计数++;
如果(计数>=术语长度){
计数=0;
}
}
setText();
});
您的函数在哪里
defined?此处包含的javascript似乎是用于其他用途。请尝试将您的代码放入JSFIDLE并与他人共享。谢谢大家-很抱歉造成混淆。我已经很久没有睡觉了,我粘贴了一段不相关的代码,现在我已经更正了。感谢您的耐心。您能做一个小提琴演示吗你的代码有问题吗?也许当你自己这么做的时候,你会发现问题:)嗨。我刚刚建立了一个JFIDLE帐户,试图按照你的要求去做。我发现JFIDLE试图强迫我