写一个走马灯
时间: 2024-02-12 20:08:28 浏览: 71
好的,这里提供一个使用 JavaScript 实现的走马灯示例,可以自动滚动一组图片:
HTML 代码:
```html
<div id="marquee">
<img src="image1.jpg">
<img src="image2.jpg">
<img src="image3.jpg">
</div>
```
CSS 代码:
```css
#marquee {
overflow: hidden; /* 隐藏超出部分 */
white-space: nowrap; /* 不换行 */
}
#marquee img {
display: inline-block; /* 行内块元素 */
margin-right: 10px; /* 图片之间的间距 */
}
```
JavaScript 代码:
```javascript
// 获取走马灯元素和所有图片元素
var marquee = document.getElementById("marquee");
var images = marquee.getElementsByTagName("img");
// 获取第一张图片的宽度
var imgWidth = images[0].offsetWidth;
// 复制所有图片,形成无缝滚动效果
marquee.innerHTML += marquee.innerHTML;
// 定义动画函数
function animate() {
// 获取当前滚动位置
var scrollLeft = marquee.scrollLeft;
// 如果已滚动至最后一张图片,回到起点
if (scrollLeft >= imgWidth * images.length) {
marquee.scrollLeft = 0;
return;
}
// 滚动一小段距离
marquee.scrollLeft += 2;
// 每隔10毫秒执行一次动画函数
setTimeout(animate, 10);
}
// 开始动画
animate();
```
代码解释:
1. 首先获取走马灯元素和所有图片元素。
2. 获取第一张图片的宽度,后面用来判断是否已滚动至最后一张图片。
3. 将所有图片复制一遍,形成无缝滚动效果。
4. 定义一个 `animate` 函数,用来执行滚动动画。
5. 在 `animate` 函数中,获取当前滚动位置,如果已滚动至最后一张图片,回到起点;否则,滚动一小段距离,并每隔10毫秒执行一次动画函数。
6. 最后调用 `animate` 函数开始动画。
需要注意的是,代码中的图片路径需要根据实际情况修改。此外,为了实现无缝滚动效果,代码中将所有图片复制了一遍,因此如果图片太多会影响页面性能,建议控制在合理范围内。
阅读全文