JavaScript实现无缝循环滚动图片技术
3星 · 超过75%的资源 需积分: 25 66 浏览量
更新于2024-11-28
收藏 3KB TXT 举报
“js实现图片的无缝循环滚动”
在网页设计中,图片的无缝循环滚动是一种常见的动态效果,可以吸引用户的注意力并提升页面的视觉吸引力。这种效果通常应用于网站的轮播图、广告展示或者产品展示区域。本文将介绍如何使用JavaScript实现图片的向上、向下、向右的无缝循环滚动。
首先,我们需要在HTML中设置一个包含图片的容器。例如,这里有一个ID为`demo1`的`<div>`元素,其中包含多张相同图片。另外,为了实现滚动效果,我们还需要一个备用的容器`demo2`,它会在滚动过程中用来复制`demo1`的内容。HTML代码如下:
```html
<div id="demo" style="overflow:hidden;height:100px;width:90px;background:#214984;color:#ffffff">
<div id="demo1">
<img src="http://www.haao.cn/logo.gif">
<!-- 更多图片 -->
</div>
<div id="demo2"></div>
</div>
```
接下来,我们需要编写JavaScript代码来实现滚动功能。这里定义了一个`speed`变量,用于控制滚动速度。然后,我们使用`innerHTML`属性将`demo1`的内容复制到`demo2`中。接着,创建了一个名为`Marquee`的函数,该函数负责检查滚动条件并执行相应的滚动操作。
```javascript
var speed = 30;
demo2.innerHTML = demo1.innerHTML;
function Marquee() {
// 检查滚动条件
if (demo2.offsetTop - demo.scrollTop <= 0) {
demo.scrollTop -= demo1.offsetHeight; // 向上滚动
} else {
demo.scrollTop++;
}
}
var MyMar = setInterval(Marquee, speed); // 开启定时器
```
为了让用户在鼠标悬停时暂停滚动,在`demo`元素上添加鼠标悬停和离开事件监听器:
```javascript
demo.onmouseover = function () { clearInterval(MyMar); } // 鼠标悬停时停止滚动
demo.onmouseout = function () { MyMar = setInterval(Marquee, speed); } // 鼠标离开时恢复滚动
```
这个示例中,图片会向上无缝滚动。如果想要实现向下的滚动,只需改变滚动方向,将`demo.scrollTop -= demo1.offsetHeight`改为`demo.scrollTop += demo1.offsetHeight`。同样,对于向右的滚动,可以通过调整容器的宽度和`scrollLeft`属性来实现。
无缝循环滚动的关键在于利用`innerHTML`复制元素内容和利用CSS的`overflow`属性隐藏超出部分,配合JavaScript的定时器和滚动位置判断,实现平滑的滚动效果。这种技术在现代网页设计中非常常见,可以轻松地通过JavaScript库如jQuery或纯JavaScript实现,并根据需求进行自定义和扩展。
222 浏览量
2020-10-21 上传
803 浏览量
6926 浏览量
105 浏览量
164 浏览量
xiaoshi_p
- 粉丝: 2
- 资源: 1
最新资源
- Gooper1 Data Pack:新的 G1DP 存储库。 去贡献!-开源
- iOS Apprentice v7.0 (iOS12 & Swift4.2 & Xc.zip
- PersonalPage:我的NextJS个人开发人员页面
- CS300P07
- AppAuth-JS:JavaScript客户端SDK,用于与OAuth 2.0和OpenID Connect提供程序进行通信
- js和CSS3炫酷圆形导航菜单插件
- 裂纹检测:使用计算机视觉工具箱进行裂纹检测-matlab开发
- 开源软路由OPENWRT2020.9.8原版VMWARE固件
- Onboard-SDK:DJI Onboard SDK官方资料库
- projetoFinal-ips-2-ano
- chips_thermal_face_dataset:芯片热敏面数据集是一个大规模的热敏面数据集(来自3个不同大洲的1200幅男性和女性图像,年龄在18-23岁之间)。 该数据集将可供全世界的研究人员使用最新的深度学习方法创建准确的热面部分类和热面部识别系统
- pamansayurdev.github.io:网站paman sayur
- MO_Ring_PSO_SCD:它是用于多模态多目标优化的多目标 PSO-matlab开发
- resynthesizer:用于纹理合成的gimp插件套件
- NavigationDrawer:这是一个示例项目,用于演示如何制作导航抽屉。此外,在这个项目中,我添加了材料设计,因此对于想要实现材料设计、工具栏等的人也有帮助
- hacker-news-clone