jquery实现滚动新闻播报,超简短

作者在 2016-08-09 20:26:52 发布以下内容

太短了,我都佩服我自己了。原理就是不停的把第一条放到最后,然后向前滚动一条。

<style>
	.container{position:relative; height:30px; width:200px; overflow:hidden; border:1px solid #333;}
	.news{position:absolute; top:0; margin:0;}
	.news li{line-height:30px;}
</style>
<div class="container">
	<ul class="news">
		<li><a href="###">第一条新闻</a></li>
		<li><a href="###">第二条新闻</a></li>
		<li><a href="###">第三条新闻</a></li>
	</ul>
</div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
	$(document).ready(function () {
		var $news = $(".news");
		var $li_height = $news.find("li").height();
		setInterval(function () {
			$news.animate({top: -$li_height}, 500, function () {
				$news.css({top: 0});
				$news.append($news.find("li:first-child"));
			});
		}, 1000);
	});
</script>
上面是最简单的实现,便于需要的朋友一眼就能看懂原理,下面是加了鼠标悬停效果和把逻辑代码放进闭包的

<style>
	.container{position:relative; height:30px; width:200px; overflow:hidden; border:1px solid #333;}
	.news{position:absolute; top:0; margin:0;}
	.news li{line-height:30px;}
</style>
<div class="container">
	<ul class="news">
		<li><a href="###">第一条新闻</a></li>
		<li><a href="###">第二条新闻</a></li>
		<li><a href="###">第三条新闻</a></li>
	</ul>
</div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
	$(document).ready(function () {
		(function () {
			var $news = $(".news");
			var $li_height = $news.find("li").height();
			var $pause = false;
			setInterval(function () {
				if (!$pause) {
					$news.animate({top: -$li_height}, 500, function () {
						$news.css({top: 0});
						$news.append($news.find("li:first-child"));
					});
				}
			}, 1000);
			$news.hover(function () {
				$pause = true;
			}, function () {
				$pause = false;
			});
		})();
	});
</script>

WEB开发 | 阅读 4468 次
文章评论,共0条
游客请输入验证码
浏览2893638次
文章归档
最新评论
  • 静夜思:-1是多核
  • 时光拾荒者:CtrlCV还是强的😝
  • 硬识岩丝:解决了,太感谢了~