本文实例讲述了JS无缝滚动效果实现方法。分享给大家供大家参考,具体如下:
效果:
1.默认缓慢往左滚动
2.放到左箭头上还是向左滚动,放到右箭头上向右滚动
3.放到图片上停止滚动,移出继续滚动
思路:
1.计算图片列表ul的宽度
2.开启定时器,使其向左边距不断增大,造成向左运动的效果
3.图片列表复制一份,向左移动时,当左边距大于一份的宽度时,把它的左边距拉回到0。向右移动时,当左边距大于0时,把它的左边距拉到整个两份图片列表一半的宽度(即一份的宽度)。(拉的瞬间很快,用户察觉不到,造成一种无缝滚动的假象)
4.offsetLeft值的正负决定往哪边移动
5.放到图片上停止这个定时器,移开再开启
window.onload=function(){
var odiv=document.getElementById('div');
var oul=odiv.getElementsByTagName('ul')[0];
var oli=oul.getElementsByTagName('oul');
var btn=document.getElementsByTagName('btn');
var ispeed=-1;
var timer=null;
oul.innerHTML+=oul.innerHTML; //图片列表复制一份
oul.style.width=oli[0].offsetWidth*oli.length+'px'; //不算出ul的宽度的话,运动过程中后面的会先出现再加载图片,有一种不流畅感,切图片过多会分行,由外面的div决定宽度
timer=setInterval(function(){
oul.style.left=oul.offsetLeft+ispeed+'px'; //offsetLeft输出的是数字不带单位,右边也用oul.style.left输出的是字符串,而不是数值,而且它取得是行间样式,无用
if(oul.offsetLeft<-oul.offsetWidth/2){ //判断时也可以用.style.left或.style.width?(不确定)
oul.style.left=0;
}
else if(oul.offsetLeft>0){
oul.style.left=-oul.offsetWidth/2;
}
),30};
btn[0].onmouseover=function(){
ispeed=-1;
};
btn[1].onmouseover=function(){
ispeed=1;
};
oul.onmouseover=function(){
clearInterval(timer);
};
oul.onmouseout=function(){
timer=setInterval(function(){
oul.style.left=oul.offsetLeft+ispeed+'px';
if(oul.offsetLeft<-oul.offsetWidth/2){
oul.style.left=0;
}
else if(oul.offsetLeft>0){
oul.style.left=-oul.offsetWidth/2;
}
),30}; //如果把速度变大,而定时器的时间也变大是否可以达到相同效果呢?答案是不能。会变成一卡一卡
};
};
注:这样子取得的宽度是不包含margin的,所以图片间边距的写法可以是li的宽度大于img的宽度,li的宽度-img的宽度,就是两边的边距和
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JS
# 无缝滚动
# 简单实现js间歇或无缝滚动效果
# js超时调用setTimeout和间歇调用setInterval实例分析
# javascript学习笔记(十五) js间歇调用和超时调用
# javascript动画系列之模拟滚动条
# js实现页面刷新滚动条位置不变
# JS实现的相册图片左右滚动完整实例
# JS实现判断滚动条滚到页面底部并执行事件的方法
# js操作滚动条事件实例
# js判断滚动条是否已到页面最底部或顶部实例
# JS实现单行文字不间断向上滚动的方法
# js网页滚动条滚动事件实例分析
# JS实现间歇滚动的运动效果实例
# 的是
# 变大
# 行间
# 相关内容
# 有一种
# 可以用
# 遍历
# 感兴趣
# 数据结构
# 给大家
# 使其
# 不确定
# 不带
# 这样子
# 更多关于
# 再加
# 拉到
# 可以达到
# 所述
# 程序设计
相关文章:
如何在万网自助建站平台快速创建网站?
如何在香港服务器上快速搭建免备案网站?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
平台云上自助建站如何快速打造专业网站?
广平建站公司哪家专业可靠?如何选择?
制作企业网站建设方案,怎样建设一个公司网站?
代购小票制作网站有哪些,购物小票的简要说明?
广州商城建站系统开发成本与周期如何控制?
如何实现建站之星域名转发设置?
建站上市公司网站建设方案与SEO优化服务定制指南
如何快速重置建站主机并恢复默认配置?
如何通过虚拟主机快速完成网站搭建?
独立制作一个网站多少钱,建立网站需要花多少钱?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
建站之星如何快速更换网站模板?
如何高效配置香港服务器实现快速建站?
制作网站的软件免费下载,免费制作app哪个平台好?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
如何在阿里云高效完成企业建站全流程?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何零基础开发自助建站系统?完整教程解析
建站主机服务器选购指南:轻量应用与VPS配置解析
盐城做公司网站,江苏电子版退休证办理流程?
建站之星3.0如何解决常见操作问题?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何使用Golang table-driven基准测试_多组数据测量函数效率
小型网站建站如何选择虚拟主机?
如何在Golang中使用replace替换模块_指定本地或远程路径
西安专业网站制作公司有哪些,陕西省建行官方网站?
网站制作新手教程,新手建设一个网站需要注意些什么?
如何通过VPS建站实现广告与增值服务盈利?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
MySQL查询结果复制到新表的方法(更新、插入)
已有域名如何快速搭建专属网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何通过虚拟主机空间快速建站?
,怎么在广州志愿者网站注册?
寿县云建站:智能SEO优化与多行业模板快速上线指南
香港网站服务器数量如何影响SEO优化效果?
建站之星官网登录失败?如何快速解决?
如何在IIS管理器中快速创建并配置网站?
如何通过西部数码建站助手快速创建专业网站?
如何快速生成ASP一键建站模板并优化安全性?
建站之星安装后如何自定义网站颜色与字体?
建站之星如何优化SEO以实现高效排名?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
*请认真填写需求信息,我们会在24小时内与您取得联系。