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

先show一下成品:

首先是网页样式:

1. #demo {

2. background: #FFF;

3. overflow:hidden;

4. border: 1px dashed #CCC;

5. width: 1280px;

6. height:200px;

7. }

8. #demo img {

9. border: 3px solid #F2F2F2;

10. }

11. #indemo {

12. float: left;

13. width: 800%;

14. }

15. #demo1 {

16. float: left;

17. }

18. #demo2 {

19. float: left;

20. }

布局如下:

1. <div id="demo">

2. <div id="indemo">

3. <div id="demo1">

4. <a href="#"><img src="banner.jpg" border="0" /></a>

5. <a href="#"><img src="banner2.jpg" border="0" /></a>

6. </div>

7. <div id="demo2"></div>

8. </div>

9. </div>

具体的JS实现:

1. <script>

2. var speed=10;

3. var tab=document.getElementById("demo");

4. var tab1=document.getElementById("demo1");

5. var tab2=document.getElementById("demo2");

6. tab2.innerHTML=tab1.innerHTML;

7. function Marquee(){

8. if(tab2.offsetWidth-tab.scrollLeft==0)

9. tab.scrollLeft-=tab1.offsetWidth

10. else{

11. tab.scrollLeft++;

12. }

13. }

14. var MyMar=setInterval(Marquee,speed);

15. tab.onmouseover=function() {clearInterval(MyMar)};

16. tab.onmouseout=function() {MyMar=setInterval

17. (Marquee,speed)};

18. </script>

这里要注意的是:

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

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

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

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

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

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

谢谢支持!

可以联系我进行交流。Renhanlinbsl@163.com

2016.2.5

4:55

JS平滑无缝滚动实现———实现首页广告自动滚动效果(附实例)的更多相关文章

  1. 【原创】ListView快速滚动至新添加一行(自动滚动)

    在C#开发中我们经常要开发一些日志系统,尤其是基于ListView的日志显示系统.但是当日志增多是你是否有一些困扰,就是它为什么不会自动滚动至最后一行. 以下是一小段代码,希望可以帮助你. publi ...

  2. Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下 ...

  3. PDF如何自动滚动阅读

    PDF如何自动滚动阅读 视图---页面显示---自动滚动 快捷键 Ctrl +shift+H

  4. js平滑滚动到顶部,底部,指定地方

    [原文链接] 采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置,从而看起来会非常高大上. [示例演示 ...

  5. JS运动 - 无缝滚动和缓动动画

    JS运动 - 无缝滚动和缓动动画 无缝滚动原理:首先先复制两张图片(第一张和第二张)放到最后面;ul绝对定位,如果ul的left值大于等于4张图片的宽度,就应该快速复原为0. html <!DO ...

  6. 今天代码中接触到了一个新的东西。js的上下自动滚动,无缝对接。

    js的上下自动滚动,无缝对接.为什么会用到这个东西呢?因为我在做公司的官网项目的修改的时候.有一个产品介绍的页面,会有很多的产品出现在,中间部分的列表里.但是又不能够使用分页.所以我就在想如果,列表数 ...

  7. jQuery 间歇式无缝滚动特效分享(三张图片平行滚动)

    最近项目中门户首页需要做出图片间歇式无缝滚动特效,但是在网上找资料都是不太理想,不过可以指导.最后自己写了一个demo实现了这个特效,分享出来. 1.jquery.cxscroll.js /*! * ...

  8. wordpress使用video.js与七牛云存储实现无广告视频分享应用

    video.js是一款极受欢迎的基于HTML5的开源WEB视频播放器,其充分利用了HTML5的视频支持特性,可以实现全平台的无视频插件播放功能,对于现在流行的手机.PAD等移动智能终端有极佳的应用体验 ...

  9. js 图片无缝循环

    <html> <head> <title>Js图片无缝滚动</title> <style type="text/css"> ...

随机推荐

  1. openssl windows 生成公钥与私钥

    链接: https://pan.baidu.com/s/1qn-qeFxovor-vcAWFl8jIw 提取码: zy5v 一,下载安装windows平台openssl密钥生成工具,执行安装目录bin ...

  2. solidity数据位置-memory,storage和calldata

    有三种类型,memory,storage和calldata,一般只有外部函数的参数(不包括返回参数)被强制指定为calldata.这种数据位置是只读的,不会持久化到区块链 storage存储或memo ...

  3. Linux系统--命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  4. 关于python3.x语法

    注1:该文章中所有的图示均使用的pycharm 注2:#号后面没有声明的均为运算结果 #用井字符开头的是单行注释 """ 多行字符串用三个引号 包裹,也常被用来做多 行注 ...

  5. NSTimer深入理解

    NSTimer,即计时器,用于定时执行一些任务,一次或者多次. 系统Foundation框架提供的最常用方法如下,创建一个NSTimer,并将它放到当前runloop的default mode中. + ...

  6. C# 语法四 修饰符

    1.sealed 不能派生 2.internal 仅仅在本项目中被访问 3.public 整个系统 4.private 本类访问 5.protected 本类.派生类访问 using System; ...

  7. ASP.NET 加密解密

    1.MD5 2.DES 一 MD5 介绍:MD5是不可逆解密方式,比如对密码的加密,为了保密,让密码不能解密 public static string MD5Encrypt(string str) { ...

  8. Luogu P1082 同余方程(exgcd模版)

    传送门 求ax%b = 1,即ax - by = 1: 很明显这是一个exgcd的形式. 那么要做这道题,首先需要gcd和exgcd的算法作铺垫. gcd(辗转相膜法): int gcd(int a, ...

  9. Twemproxy Redis 介绍与使用

    Twemproxy是一种代理分片机制,由Twitter开源.Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回.该方案很好的解决了单个Re ...

  10. JavaScript设计模式 - 状态模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...