`
黄继华
  • 浏览: 45060 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JS实现图片无缝滚动

 
阅读更多

想必大家都注意到<marquee>的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出<marquee>,不管怎么做,都略显麻烦。下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2, demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。

先了解一下对象的几个的属性:
innerHTML:设置或获取位于对象起始和结束标签内的 HTML
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度

好,先看这个向上滚动的代码:
<div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff>

<div id=demo1>
<img src="images/flash8.gif">
<img src="images/link/flashempire.gif">
<img src="images/linklogo/shlogo.gif">
<img src="images/link/deskcity.gif">
<img src="images/linklogo/5dmeng.gif">
<img src="/Upload/2004_Pack/logo.gif">
<img src="images/link/flashskylogo.gif">
<img src="images/link/5dlogo88.gif">
<img src="/Upload/2004_Pack/link.gif">
</div>
<div id=demo2></div>
</div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML //克隆demo1为demo2
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0) //当滚动至demo1与demo2交界时
demo.scrollTop-=demo1.offsetHeight //demo跳到最顶端
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed) //设置定时器
demo.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器
</script>

向下滚动:

<div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff>
<div id=demo1>
<img src="images/flash8.gif">
<img src="images/link/flashempire.gif">
<img src="images/linklogo/shlogo.gif">
<img src="images/link/deskcity.gif">
<img src="images/linklogo/5dmeng.gif">
<img src="/Upload/2004_Pack/logo.gif">
<img src="images/link/flashskylogo.gif">
<img src="images/link/5dlogo88.gif">
<img src="/Upload/2004_Pack/link.gif">
</div>
<div id=demo2></div>
</div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML
demo.scrollTop=demo.scrollHeight
function Marquee(){
if(demo1.offsetTop-demo.scrollTop>=0)
demo.scrollTop+=demo2.offsetHeight
else{
demo.scrollTop--
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>

向左滚动:

<base href="http://www.webjx.com">
<div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff>
<table align=left cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top>
<img src="images/link/flashempire.gif"><img src="images/linklogo/shlogo.gif">
<img src="images/link/deskcity.gif"><img src="images/linklogo/5dmeng.gif">
<img src="/Upload/2004_Pack/logo.gif"><img src="images/link/flashskylogo.gif">
<img src="images/link/5dlogo88.gif"><img src="/Upload/2004_Pack/link.gif">
<img src="images/flash8.gif"></td><td id=demo2 valign=top></td></tr></table></div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetWidth-demo.scrollLeft<=0)
demo.scrollLeft-=demo1.offsetWidth
else{
demo.scrollLeft++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>

向右滚动:

<base href="http://www.webjx.com">
<div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff>
<table align=left cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top>
<img src="images/link/flashempire.gif"><img src="images/linklogo/shlogo.gif">
<img src="images/link/deskcity.gif"><img src="images/linklogo/5dmeng.gif">
<img src="/Upload/2004_Pack/logo.gif"><img src="images/link/flashskylogo.gif">
<img src="images/link/5dlogo88.gif"><img src="/Upload/2004_Pack/link.gif">
<img src="images/flash8.gif"></td><td id=demo2 valign=top></td></tr></table></div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML
demo.scrollLeft=demo.scrollWidth
function Marquee(){
if(demo.scrollLeft<=0)
demo.scrollLeft+=demo2.offsetWidth
else{
demo.scrollLeft--
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}

分享到:
评论

相关推荐

    JS实现图片无缝滚动的完美解决

    本文将深入探讨如何通过JavaScript(简称JS)来实现图片的无缝滚动,旨在为开发者提供一个完整且易于理解的解决方案。 #### 关键概念解析 - **`&lt;marquee&gt;`**:这是一个HTML标签,用于创建自动滚动的文本或图片流,...

    js实现图片无缝滚动或者文字滚动

    总的来说,通过JavaScript实现图片和文字的无缝滚动,需要理解HTML、CSS和JS的基本原理,以及如何利用它们协作实现动态效果。通过不断实践和优化,可以创造出既美观又高效的滚动效果,提升网站的用户体验。

    js实现图片无缝滚动图片无缝滚动

    图片自己添加,功能是可以暂停图片滚动,移出鼠标后开始滚动,可点击向左或向右改变滚动方向,默认是向左

    js 图片无缝滚动

    js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js 图片无缝滚动js ...

    JavaScript实现图片无缝滚动效果

    JavaScript 实现图片无缝滚动效果是一种常见的网页动态效果,主要用于展示多张图片,使得用户感觉图片在不断滚动,而不会出现明显的切换痕迹。这种效果能够增加网站的视觉吸引力,尤其适用于新闻滚动、产品展示等...

    无缝滚动制作js文字无缝滚动和js图片无缝滚动

    总结来说,JavaScript无缝滚动技术是通过数组和定时器结合DOM操作来实现的。无论是文字还是图片,都可以通过这种方法实现流畅的滚动效果。在实际开发中,可以根据项目需求进行定制,如调整滚动速度、添加不同的过渡...

    JavaScript实现图片无缝滚动,如网页上的广告滚动条

    利用JS定时器和运动框架实现图片无缝滚动,适合初学者使用

    js原生图片上下无缝滚动

    原生JavaScript实现图片无缝滚动,主要涉及以下几个步骤: 1. **HTML 结构**:创建一个包含所有图片的`&lt;div&gt;`容器,每张图片作为`&lt;img&gt;`元素放入其中。 ```html ... ``` 2. **CSS 样式**:设置容器的`...

    脚本实现图片无缝滚动

    JavaScript是实现图片无缝滚动的核心语言,主要用于控制图片的切换和动画效果。在实现过程中,我们需要创建一个函数来处理图片的切换,并设定定时器来自动执行这个函数,形成连续滚动的效果。 1. 获取图片元素:...

    JS实现无缝滚动三种样式

    JS实现无缝滚动三种样式 JS实现无缝滚动三种样式 JS实现无缝滚动三种样式 JS实现无缝滚动三种样式 JS实现无缝滚动三种样式 JS实现无缝滚动三种样式 http://blog.lamp99.com/1113.html

    js无缝滚动代码制作js图片无缝滚动向上无缝滚动

    在网页设计中,为了增加用户体验,我们经常需要实现一些动态效果,如图片的无缝滚动。这种效果可以让图片在页面上连续、平滑地滚动,给人一种无始无终的感觉,提升了视觉效果。 "无缝滚动"的实现主要依赖于...

    js实现文字内容无缝滚动动画效果

    "js实现文字内容无缝滚动动画效果"是一个常见的JavaScript技术应用,主要用于创建一种视觉上连续、无中断的文字滚动展示,常见于新闻网站或者公告栏。这种效果使得有限的空间内可以展示更多的信息,而不会显得拥挤。...

    图片无缝滚动插件上下左右图片无缝滚动代码.zip

    这个压缩包文件"图片无缝滚动插件上下左右图片无缝滚动代码.zip"显然包含了一套实现这种效果的JavaScript代码。以下是关于这个插件及其相关技术的知识点详解: 1. **JavaScript基础**:无缝滚动效果主要依赖...

    js图片左右无缝滚动用鼠标控制图片滚动

    以上就是实现JavaScript图片左右无缝滚动的关键知识点,通过理解并掌握这些内容,开发者可以创建出各种动态、交互性强的图片展示效果。在实际项目中,还可以根据需求添加更多功能,如自动播放、暂停、导航点等。

    js替代marquee实现图片无缝滚动

    为了弥补这一不足,我们可以利用JavaScript来实现图片的无缝滚动效果。 首先,我们需要了解几个JavaScript中与滚动相关的属性: 1. `innerHTML`: 这个属性用于设置或获取元素内部的HTML内容,例如在我们的例子中,...

    html中图片无缝滚动

    总的来说,HTML图片无缝滚动是通过HTML构建结构,CSS设计样式,JavaScript处理动态效果来实现的。这种技术不仅提升了用户体验,也为网页设计带来了丰富的视觉效果。通过不断学习和实践,你可以在自己的网页设计中...

    marquee图片无缝滚动(上下左右均可)

    **标题解析:** "marquee图片无缝滚动(上下左右均可)" 这个标题涉及到...通过以上分析,我们可以了解到`&lt;marquee&gt;`标签和相关插件在实现图片无缝滚动效果中的应用和配置方法,以及它们在网页设计和开发中的注意事项。

    js产品图片无缝滚动代码向左和向上图片无缝滚动代码

    本文将深入讲解如何使用JS实现产品图片的向左和向上无缝滚动效果。 首先,我们需要理解无缝滚动的基本原理。它通过调整图片的显示顺序,让最后一张图片紧跟在第一张图片之后,从而在视觉上创造出无中断的滚动效果。...

    Javascript 实现图片无缝滚动

    关于Javascript实现图片无缝滚动的技术实现,涉及到的核心知识点包括HTML/CSS布局基础、Javascript编程、事件处理以及DOM操作等。接下来,将详细解读相关知识点,并结合提供的内容进行讲解。 1. HTML/CSS布局基础 ...

Global site tag (gtag.js) - Google Analytics