知识要点

1.实现原理:通过定时器不断改变列表的top值。而达到无间隙滚动就要对信息列表复制一份,再判断两个列表的top临界值初始化。最后注意的就是 防止动画积存需要对定时器进行清除。
2.用到的属性方法:
setInterval() //每隔一定时间执行一次函数,可以无限执行下去 clearInterval() //清除指定的setInterval setTimeout() //经过一定时间执行一次函数,只能执行一次,如果要无限下去需要在函数里自行设置 clearTimeout() //清除指定的setTimeout
剩下的就是一些基础的dom操作
完整代码
注:因为看到了天猫积分的抽奖页面所以想自己写试试,审查天猫代码看到原理是改变列表top值,无缝滚动是自己瞎琢磨的,估计应该有更高效的方法还请大神指教。。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:none;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
.title{background: #D20F25; width: 200px; height: 40px; color: #fff; line-height: 40px;}
.title p{margin-left: 30px;}
#vip{background: #D20F25; width: 200px; height: 105px; color: #FF92AD; overflow: hidden; position: relative; }
#list{position: absolute;}
#vip li{ height: 50px; line-height: 24px; font-size: 12px; margin-left: 30px; }
</style>
</head>
<body>
<div class="title"><p>会员中奖榜</p></div>
<div id="vip">
<ul id="list" style="top: 0px;">
<li>m**b<br/>抽中18积分</li>
<li>小**宫<br/>抽中28积分</li>
<li>金**告<br/>抽中8积分</li>
<li>真**生<br/>抽中88积分</li>
<li>郑**9<br/>抽中18积分</li>
<li>l**美<br/>抽中8积分</li>
</ul>
</div>
<script type="text/javascript">
//在页面加载完后立即执行多个函数方案
function addloadEvent(func){
var oldonload=window.onload;
if(typeof window.onload !="function"){
window.onload=func;
}
else{
window.onload=function(){
if(oldonload){
oldonload();
}
func();
}
}
}
//在页面加载完后立即执行多个函数方案结束
addloadEvent(nes);
function nes(){
//获取列表父容器
var vip=document.getElementById("vip");
//获取信息列表
var list=document.getElementById("list");
//创建第二个列表设置一系列样式id等
var list1=document.createElement("ul");
list1.setAttribute("id","list1");
//初始位置为300正好在第一个列表的下面
list1.style.top=300+"px";
list1.style.position="absolute";
//插入文档流
vip.appendChild(list1);
//把第一个列表的结构内容复制给第二个
list1.innerHTML=list.innerHTML;
//第一个列表
function b(){
//top值为当前的top减10
list.style.top=parseInt(list.style.top)-10+"px";
//如果top值为-300那么初始化top
if(parseInt(list.style.top)==-300){
list.style.top=0;
}
//这里是实现间隔滚动判断
//当top值整除50(每个li的高度)时候清除定时器
if(parseInt(list.style.top)%50==0){
clearInterval(time);
//然后两秒后再次执行time=setInterval
se=setTimeout(function(){time=setInterval(b,30);},2000);
}
};
//定时器
time=setInterval(b,30);
//第二个列表与第一个列表操作一样,只是修改了高度
function c(){
list1.style.top=parseInt(list1.style.top)-10+"px";
if(parseInt(list1.style.top)==0){
list1.style.top=300+"px";
}
if(parseInt(list1.style.top)%50==0){
clearInterval(time1);
se1=setTimeout(function(){time1=setInterval(c,30);},2000);
}
};
time1=setInterval(c,30);
//鼠标移入列表时 清除两个定时器
vip.onmouseover=function(){
clearTimeout(se);
clearTimeout(se1);
clearInterval(time);
clearInterval(time1);
};
//鼠标划出时先判断如果定时器在执行则清除
vip.onmouseout=function(){
if(time&&time1) {
clearInterval(time);
clearInterval(time1)
}
if(se&&se1) {
clearTimeout(se);
clearTimeout(se1)
}
//再次执行定时器
se=setTimeout(function(){time=setInterval(b,30);},2000);
se1=setTimeout(function(){time1=setInterval(c,30);},2000);
};
}
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# 原生js
# 信息无间隙滚动
# 原生js实现滚动效果
# js
# 滚动
# 原生js实现水平方向无缝滚动
# 使用jQuery或者原生js实现鼠标滚动加载页面新数据
# 原生js页面滚动延迟加载图片
# 原生js实现模拟滚动条
# 原生JS绑定滑轮滚动事件兼容常见浏览器
# 原生Js页面滚动延迟加载图片实现原理及过程
# 第一个
# 第二个
# 鼠标
# 多个
# 完后
# 值为
# 临界值
# 加载
# 大神
# 要对
# 每隔
# 还请
# 看到了
# 文档
# li
# legend
# fieldset
# form
# ol
# hr
相关文章:
制作销售网站教学视频,销售网站有哪些?
如何在云主机上快速搭建多站点网站?
已有域名如何快速搭建专属网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
电商网站制作公司有哪些,1688网是什么意思?
如何在阿里云完成域名注册与建站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
北京企业网站设计制作公司,北京铁路集团官方网站?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
,网站推广常用方法?
如何基于PHP生成高效IDC网络公司建站源码?
香港服务器租用每月最低只需15元?
郑州企业网站制作公司,郑州招聘网站有哪些?
开心动漫网站制作软件下载,十分开心动画为何停播?
外贸公司网站制作哪家好,maersk船公司官网?
如何实现建站之星域名转发设置?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
建站主机解析:虚拟主机配置与服务器选择指南
建站之星logo尺寸如何设置最合适?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
建站之星后台密码遗忘如何找回?
实例解析Array和String方法
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
*服务器网站为何频现安全漏洞?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何通过商城自助建站源码实现零基础高效建站?
如何撰写建站申请书?关键要点有哪些?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何通过虚拟主机空间快速建站?
建站之星官网登录失败?如何快速解决?
焦点电影公司作品,电影焦点结局是什么?
公司网站制作价格怎么算,公司办个官网需要多少钱?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
建站之星导航配置指南:自助建站与SEO优化全解析
南京网站制作费用,南京远驱官方网站?
如何通过wdcp面板快速创建网站?
如何快速查询域名建站关键信息?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
制作农业网站的软件,比较好的农业网站推荐一下?
独立制作一个网站多少钱,建立网站需要花多少钱?
建站ABC备案流程中有哪些关键注意事项?
如何在云服务器上快速搭建个人网站?
如何选择高效便捷的WAP商城建站系统?
已有域名能否直接搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。