我有两个引号包含在 H2 标记中,我想使用 jQuery 淡入和淡出。当页面加载时,我希望第一个报价淡入,延迟几秒钟并淡出,然后下一个报价做同样的事情。我希望它继续循环遍历这两个引号。任何帮助将不胜感激。
问问题
46633 次
2 回答
47
你可以这样做:
CSS:
.quotes {display: none;}
HTML:
<h2 class="quotes">first quote</h2>
<h2 class="quotes">second quote</h2>
Javascript:
// code gets installed at the end of the body (after all other HTML)
(function() {
var quotes = $(".quotes");
var quoteIndex = -1;
function showNextQuote() {
++quoteIndex;
quotes.eq(quoteIndex % quotes.length)
.fadeIn(2000)
.delay(2000)
.fadeOut(2000, showNextQuote);
}
showNextQuote();
})();
工作演示:http: //jsfiddle.net/jfriend00/n4mKw/
此代码适用于您拥有的任意数量的引号,而不仅仅是两个。如果引号后面有内容,您可能希望修复引号所在容器的大小,以便在从一个引号到下一个引号时它不会改变大小(导致其他页面内容跳来跳去) .
于 2012-08-22T01:45:43.140 回答
1
这是使上述脚本正常工作所需要的。首先,您需要引用适当的 JQuery 框架,因此将此脚本标记添加到该<head>
部分中,或者在<body>
标记的末尾,在所有其他元素之后:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
然后主 JavaScript 必须在上述<script>
标记之后加载:
<script type="text/javascript">
(function() {
var quotes = $(".quotes");
var quoteIndex = -1;
function showNextQuote() {
++quoteIndex;
quotes.eq(quoteIndex % quotes.length)
.fadeIn(2000)
.delay(2000)
.fadeOut(2000, showNextQuote);
}
showNextQuote();
})();
</script>
于 2013-10-30T09:10:09.873 回答