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解决图片缩放及其优化的代码
May 23 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
Dec 05 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
微信小程序登录态控制深入分析
Apr 12 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 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
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php实现RSA加密类实例
2015/03/26 PHP
php curl常用的5个经典例子
2017/01/20 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
Node.js实现数据推送
2016/04/14 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
如何掌握自荐信格式呢
2013/11/19 职场文书
医院护士的求职信
2014/01/03 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
优秀工作者事迹材料
2014/12/26 职场文书