gpt4 book ai didi

jquery - 如何在延迟后更改文本并将其循环回来?

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:37 24 4
gpt4 key购买 nike

我正在使用 CSS 尝试这个“透明框中的文本”。

<!DOCTYPE html>
<html>
<head>
<style>
div.background
{
width: 500px;
height: 250px;
background: url(image.jpg) repeat;
border: 2px solid black;
}
div.transbox
{
width: 400px;
height: 30px;
margin: 30px 50px;
background-color: #ffffff;
border: 1px solid black;
opacity:0.6;
filter:alpha(opacity=60); /* For IE8 and earlier */
}
div.transbox p
{
text-align:center;
margin: 4px 0px;
font-weight: bold;
color: #000000;
}
</style>
</head>
<body><div class="background" style="display:inline-block">
<div class="transbox" style="display:inline-block">
<p>This is my first position</p>
</div>
</div>
</body>
</html>

如何在 5 秒延迟后自动更改透明框和文本的位置,然后再次循环?检查此屏幕截图图像:

Image 1 for position1 :http://i57.tinypic.com/x3detu.jpg

Image 2 for position 2:http://i60.tinypic.com/ipnw5v.png

Image 3 for position 3:http://i58.tinypic.com/2lnff3t.png

Loop this back to Position1

编辑

按照您的建议添加了代码,但它不起作用::

<!DOCTYPE html>
<html>
<head>

<style>
div.background
{
width: 500px;
height: 250px;
background: url(banner.jpg) no-repeat;
border: 2px solid black;
}
div.transbox
{
width: 400px;
height: 30px;
margin: 30px 50px;
background-color: #ffffff;
border: 1px solid black;
opacity:0.6;
filter:alpha(opacity=60); /* For IE8 and earlier */
}
div.transbox p
{
text-align:center;
margin: 4px 0px;
font-weight: bold;
color: #000000;
}
</style>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

</head>
<body>
<script>
(function($) {
var transbox = $('div.transbox');

(function runIt() {
transbox
.delay(1500).animate({"top": "70px"}, 1000)
.delay(500).animate({"top": "160px"}, 1000)
.delay(500).animate({"top": ""}, 200, function () {runIt();});
}());
}());
</script>


<div class="background" style="display:inline-block">
<div class="transbox" style="display:inline-block">
<p>This is my first position</p>
</div>
</div>

</body>
</html>

最佳答案

jQuery 使这变得非常简单:

var transbox = $('div.transbox');

(function runIt() {
transbox
.delay(1500).animate({"top": "70px"}, 1000)
.delay(500).animate({"top": "160px"}, 1000)
.delay(500).animate({"top": ""}, 200, function () {runIt();});
}());

请注意,要使其正常工作,您还需要为 div.transbox 添加 position: relative

http://jsfiddle.net/pabo/Gj6tN/

如果您不想要动画效果,可以将缓动设置为 0(缓动是 1000、1000 和 200,它们定义了动画需要多长时间)。或者您可以将 .animate() 更改为 .css() 但这不会进行回调,因此您必须链接另一个调用。

编辑

您可以将任何您想要的 css 规则传递给 .animate() 方法。我已经展示了水平和垂直移动的示例。我添加了更改文本。

http://jsfiddle.net/pabo/YuJ8K/

编辑 2

你需要 jQuery。从你问题的标签来看,我假设你已经在使用它,但也许你没有。包含 jQuery 的最简单方法是使用托管在谷歌的版本。

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>

然后,您需要将 javascript 代码包装在脚本标记中,并在页面准备好后触发某种事件。您添加到

中的任何 javascript(jQuery 或其他)

$("document").ready(function() {//代码在这里});

附件将在页面准备好时执行。

<body>
<script>
$("document").ready(function() {
var transbox = $('div.transbox');

(function runIt() {
transbox
.delay(1500).animate({"top": "70px"}, 1000)
.delay(500).animate({"top": "160px"}, 1000)
.delay(500).animate({"top": ""}, 200, function () {runIt();});
}());
});
</script>

....rest of html....
</body>

关于jquery - 如何在延迟后更改文本并将其循环回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com