javascript实现平滑无缝滚动


Posted in Javascript onAugust 09, 2020

本文我们实现纯JS方式的滚动广告效果,供大家参考,具体内容如下

先show一下成品:

javascript实现平滑无缝滚动

首先是网页样式:

#demo {
 background: #FFF;
 overflow:hidden;
 border: 1px dashed #CCC;
 width: 1280px;
 height:200px;
 }
 #demo img {
 border: 3px solid #F2F2F2;
 }
 #indemo {
 float: left;
 width: 800%;
 }
 #demo1 {
 float: left;
 }
 #demo2 {
 float: left;
 }

布局如下:

<div id="demo">
 <div id="indemo">
 <div id="demo1">
 <a href="#"><img src="banner.jpg" border="0" /></a>
 <a href="#"><img src="banner2.jpg" border="0" /></a>
 </div>
 <div id="demo2"></div>
 </div>
 </div>

具体的JS实现:

<script>
var speed=10;
var tab=document.getElementById("demo");
var tab1=document.getElementById("demo1");
var tab2=document.getElementById("demo2");
tab2.innerHTML=tab1.innerHTML;
function Marquee(){
if(tab2.offsetWidth-tab.scrollLeft==0)
tab.scrollLeft-=tab1.offsetWidth
else{

 tab.scrollLeft++;

 }
}
var MyMar=setInterval(Marquee,speed);
tab.onmouseover=function() {clearInterval(MyMar)};
tab.onmouseout=function() {MyMar=setInterval
(Marquee,speed)};
</script>

这里要注意的是:

scrollLeft代表页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度。

offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

明白了这个具体的实现就好理解了。

实现的原理是这样的:首先将需要滚动的内容复制一份。当右侧的div显示的内容与左侧影藏的内容宽度相同时将父容器左侧影藏的内容显示出来,这样就实现了将左侧影藏的内容显示出来同时将右侧内容重新隐藏。如果右侧内容显示的部分少于左侧影藏的内容就继续讲父容器想左侧移动,实现隐藏。其中有一点需要注意的是,由于这里是将两张图片同时放入左侧,当右侧显示了一半时会将左侧影藏的完全显示出来,又因为右侧显示的内容与左侧的左边内容相同所以实现了循环滚动的效果。

这样平滑的滚动就实现了。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
一个JavaScript继承的实现
Oct 24 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
Javascript的时间戳和php的时间戳转换注意事项
Apr 12 Javascript
jquery cookie的用法总结
Nov 18 Javascript
javascript实现可拖动变色并关闭层窗口实例
May 15 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
Nov 24 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
JS实现进度条动态加载特效
Mar 25 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 #Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
May 05 #Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 #Javascript
jquery实现全选功能效果的实现代码
May 05 #Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 #Javascript
animate 实现滑动切换效果【实例代码】
May 05 #Javascript
JavaScript中各种引用类型的常用操作方法小结
May 05 #Javascript
You might like
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
Three.js基础部分学习
2017/01/08 Javascript
javascript表单正则应用
2017/02/04 Javascript
JS常见算法详解
2017/02/28 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Python中with及contextlib的用法详解
2017/06/08 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
ORACLE第二个十问
2013/12/14 面试题
2014年两会学习心得体会
2014/03/10 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
模特大赛策划方案
2014/05/28 职场文书
街道社区活动报告
2015/02/05 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Python办公自动化之Excel(中)
2021/05/24 Python
分享Python异步爬取知乎热榜
2022/04/12 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL