基于JS实现新闻列表无缝向上滚动实例代码


Posted in Javascript onJanuary 22, 2016

当新闻较多,并且空前有限的时候,使用滚动是一个不错的选择,本章节就通过代码实例介绍一下如何实现此效果。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="https://3water.com/" />
<title>文字列表无缝向上滚动代码</title>
<style type="text/css">
*{
margin:0px;
padding:0px;
border:0px;
}
body{font-size:12px}
#demo{
overflow:hidden;
height:80px;
width:280px;
margin:90px auto;
position:relative;
}
#demo1{
height:auto;
text-align:left;
}
#demo2{
height:auto;
text-align:left;
}
#demo1 li{
list-style-type:none;
height:22px;
text-align:left;
text-indent:15px;
}
#demo2 li{
list-style-type:none;
height:22px;
text-align:left;
text-indent:15px;
}
</style>
<script type="text/javascript"> 
var speed=40 
window.onload=function(){
var demo=document.getElementById("demo"); 
var demo2=document.getElementById("demo2"); 
var demo1=document.getElementById("demo1"); 
demo2.innerHTML=demo1.innerHTML 
function Marquee(){ 
if(demo.scrollTop>=demo1.offsetHeight){
demo.scrollTop=0; 
}
else{ 
demo.scrollTop=demo.scrollTop+1;
} 
} 
var MyMar=setInterval(Marquee,speed) 
demo.onmouseover=function(){clearInterval(MyMar)} 
demo.onmouseout=function(){MyMar=setInterval(Marquee,speed)} 
}
</script>
</head>
<body>
<div id="demo">
<ul id="demo1">
<li><a href="#" target="_blank">三水点靠木欢迎您的到来</a></li>
<li><a href="#" target="_blank">只有努力才会有美好的明天</a></li>
<li><a href="#" target="_blank">没有人一开始就是高手,都是从菜鸟开始</a></li>
<li><a href="#" target="_blank">每一天都是新的需要好好珍惜</a></li>
<li><a href="#" target="_blank">怨天尤人是没有任何作用的</a></li>
<li><a href="#" target="_blank">今天你写代码了吗</a></li>
<li><a href="#" target="_blank">分享的胸怀和互助的精神最终成就了你</a></li>
</ul>
<div id="demo2"></div>
</div>
</body>
</html>

以上代码实现了新闻列表滚动效果,下面介绍一下实现过程:

一.实现原理:

大致原理如下,demo元素中有两个子元素demo1和demo2,并且将demo1中的内容存入demo2中,之所以这样做,是为了当向上滚动的时候,demo2能够接在demo1的后面,否则将不是无缝滚动,而是有缝滚动了,当demo1的内容完全被遮挡之后,也就是demo1完全滚动上去的时候,demo2会恰好位于demo1开始滚动的位置,然后再重新设置demo的scrollTop值,让滚动就重新来过,这样就实现了无缝滚动效果。

基于JS实现新闻列表无缝向上滚动实例代码就给大家介绍到这里,希望大家根据自己的实际需求应用此段代码。

Javascript 相关文章推荐
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
JavaScript通过代码调用Flash显示的方法
Feb 02 Javascript
JS中substring与substr的用法
Nov 16 Javascript
node.js 抓取代理ip实例代码
Apr 30 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
代码整洁之道(重构)
Oct 25 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
Dec 22 Javascript
原生js实现的金山打字小游戏(实例代码详解)
Mar 16 Javascript
JS精髓原型链继承及构造函数继承问题纠正
Jun 16 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 #Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 #Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 #Javascript
jQuery解析json格式数据简单实例
Jan 22 #Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 #Javascript
基于jQuery仿淘宝产品图片放大镜特效
Oct 19 #Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
Jan 21 #Javascript
You might like
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
从零学Python之入门(四)运算
2014/05/27 Python
python写的一个squid访问日志分析的小程序
2014/09/17 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Python中包的用法及安装
2020/02/11 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
农行实习自我鉴定
2013/09/22 职场文书
见习期自我鉴定
2014/01/31 职场文书
竞选村长演讲稿
2014/04/28 职场文书
倡议书范文大全
2015/04/28 职场文书