JS平滑无缝滚动效果的实现代码


Posted in Javascript onMay 06, 2016

本文我们实现纯JS方式的滚动广告效果。

JS平滑无缝滚动效果的实现代码

先show一下成品:

首先是网页样式:

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

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

以上这篇JS平滑无缝滚动效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过JAVASCRIPT读取ASP设定的COOKIE
Nov 24 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
Sep 08 Javascript
prototype与jquery下Ajax实现的差别
Sep 13 Javascript
JavaScript学习笔记(一) js基本语法
Oct 25 Javascript
关于jQuery object and DOM element
Apr 15 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 Javascript
VueJs使用Amaze ui调整列表和内容页面
Nov 30 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
Feb 01 Javascript
使用AJAX实现Web页面进度条的实例分享
May 06 #Javascript
JavaScript中的原型继承基础学习教程
May 06 #Javascript
jquery实现下拉框功能效果【实例代码】
May 06 #Javascript
浅析在javascript中创建对象的各种模式
May 06 #Javascript
jquery自定义插件——window的实现【示例代码】
May 06 #Javascript
javascript创建对象的几种模式介绍
May 06 #Javascript
前端性能优化及技巧
May 06 #Javascript
You might like
PHP STRING 陷阱原理说明
2010/07/24 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
php简单判断文本编码的方法
2015/07/30 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
js opener的使用详解
2014/01/11 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
js转换对象为xml
2017/02/17 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
Python PyInstaller库基本使用方法分析
2019/12/12 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
软件测试常见笔试题
2012/02/04 面试题
逃课上网检讨书
2014/02/20 职场文书
《大海那边》教学反思
2014/04/09 职场文书
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技