最精简的平滑的JS新闻单行上下滚动

本文介绍了一个使用纯JS实现的简洁且平滑的新闻单行上下滚动特效。该特效通过简单的HTML结构配合少量CSS样式和轻量级的JavaScript代码实现内容的自动滚动显示,适用于网站顶部或侧边栏的最新消息展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>最精简的平滑的JS新闻单行上下滚动丨芯晴网页特效丨CsrCode.Cn</title>
<style>
a{display:block;line-height:18px;text-decoration:none;color:#555;font-family:Arial;font-size:12px;}
.shell{
background:url(http://www.csrcode.cn/html/txdm_2/images/arrowb.gif) no-repeat 4px 5px;
border:1px solid #aaa;
width:230px;
padding:3px 2px 2px 26px;
}
#div1{
height:18px;
overflow:hidden;
}
</style>
</head>
<body>
<div class="shell">
<div id="div1">
<a href="javascript:">本站收集网络上比较不错的网页特效</a>
<a href="javascript:">欢迎光临 芯晴网页特效~!</a>
<a href="javascript:">本站所有特效均收集于互联网</a>
<a href="javascript:">请仔细找找,或许就能找到你想要的特效</a>
<a href="javascript:">welcome to XinQing Waystation</a>
</div>
<div>
</body>
<script>
var c,_=Function;
with(o=document.getElementById("div1")){ innerHTML+=innerHTML; onmouseover=_("c=1"); onmouseout=_("c=0");}
(F=_("if(#%18||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%18?10:1500);".replace(/#/g,"o.scrollTop")))();
</script>
</html>
### 使用 jQuery 实现单行和多行上下滚动新闻效果 #### 单行向上滚动新闻效果 为了实现单行向上的滚动新闻效果,可以利用 `setInterval` 函数定时调整元素的位置属性。当顶部位置超出容器高度时,则重置其位置以形成循环播放的效果。 ```javascript $(function(){ var $newsList = $('#singleNews ul'); setInterval(function(){ var firstItem = $newsList.find('li:first'); firstItem.animate({marginTop: '-20px'}, 500, function(){ // 动画执行时间设为500毫秒 $(this).css({'margin-top': '0'}).appendTo($newsList); }); }, 3000); }); ``` 此段代码实现了每三秒钟自动切换下一条消息的功能[^1]。 #### 多行向下滚动新闻效果 对于多行的滚动需求,可以通过设置一个较大的外层包裹框作为视窗,并让内部的内容按照一定速度匀速移动。一旦上面的一条记录完全移出了屏幕范围之外,就将其重新放置到列表末端继续参与滚动过程。 ```html <div id="multiScroll"> <ul> <!-- 新闻项 --> <li>第一条新闻</li> <li>第二条新闻</li> ... </ul> </div> ``` ```css #multiScroll { height: 100px; /* 设置可视区域的高度 */ overflow: hidden; } #multiScroll ul li{ line-height: 2em; } ``` ```javascript var speed = 30; $('#multiScroll').hover( function() { clearInterval(this.timer); }, function() { this.timer = setInterval(function(obj){ scrollIt(obj); }.bind(null,$(this)),speed); } ); function scrollIt(obj){ var marTop = parseInt($('#multiScroll ul').css("marginTop")); if (marTop<-96){ // 当前显示的是第几条数据取决于实际项目中的具体数值 $('#multiScroll ul').css({'marginTop':'0'}); }else{ $('#multiScroll ul').css({'marginTop':marTop-1+'px'}); } }; // 初始化启动滚动功能 $('#multiScroll').trigger("mouseleave"); ``` 上述 JavaScript 代码片段定义了一个简单的鼠标悬停停止滚动机制,同时也设置了初始状态下就开始滚动的行为[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值