首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图片不断向左循环滚动js特效代码

要实现图片不断向左循环滚动的JavaScript特效,可以使用CSS动画结合JavaScript来控制图片的滚动。以下是一个简单的示例代码:

HTML结构

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片循环滚动</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="scrolling-wrapper">
        <img src="image1.jpg" alt="Image 1">
        <img src="image2.jpg" alt="Image 2">
        <img src="image3.jpg" alt="Image 3">
        <!-- 添加更多图片 -->
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS样式

代码语言:txt
复制
/* styles.css */
body {
    margin: 0;
    overflow: hidden;
}

.scrolling-wrapper {
    display: flex;
    animation: scrollLeft 20s linear infinite;
}

.scrolling-wrapper img {
    width: 200px; /* 根据需要调整图片宽度 */
    height: auto;
}

@keyframes scrollLeft {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(-100%);
    }
}

JavaScript代码

代码语言:txt
复制
// script.js
document.addEventListener("DOMContentLoaded", function() {
    const wrapper = document.querySelector('.scrolling-wrapper');
    const images = wrapper.querySelectorAll('img');

    // 复制第一张图片到最后,以实现无缝循环
    const firstImage = images[0].cloneNode(true);
    wrapper.appendChild(firstImage);

    // 调整动画持续时间以匹配图片数量和速度
    const imageWidth = images[0].offsetWidth;
    const totalImages = images.length;
    const duration = (totalImages + 1) * 2; // 每张图片显示2秒
    wrapper.style.animationDuration = `${duration}s`;
});

解释

  1. HTML结构:创建一个包含图片的容器div,并为其添加一个类名scrolling-wrapper
  2. CSS样式
    • 使用flex布局使图片水平排列。
    • 定义一个名为scrollLeft的关键帧动画,使容器从右向左移动。
    • 设置动画持续时间为20秒,并设置为无限循环。
  • JavaScript代码
    • 在DOM加载完成后,选择滚动容器并复制第一张图片到最后,以实现无缝循环。
    • 根据图片数量和期望的速度调整动画持续时间。

应用场景

  • 网站背景:用于网站的背景滚动效果,增加视觉吸引力。
  • 广告横幅:在网页顶部或底部创建动态广告横幅。
  • 信息展示:用于展示一系列相关的图片或信息。

可能遇到的问题及解决方法

  1. 动画卡顿
    • 确保图片大小适中,避免过大导致加载缓慢。
    • 使用will-change属性优化动画性能:
    • 使用will-change属性优化动画性能:
  • 图片加载顺序问题
    • 使用preload属性预加载图片,确保图片在动画开始前已加载完毕:
    • 使用preload属性预加载图片,确保图片在动画开始前已加载完毕:

通过以上步骤,你可以实现一个简单且高效的图片循环滚动特效。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 纯css实现单张图片无限循环无缝滚动

    一、用js setInterval定时器实现 js实现要通过不断的改变定位、复制图片的方式来做,效果极其不稳定 二、用css3 animation动画实现 需求1动画: @-webkit-keyframes.../猫咪咪.jpg") repeat-y center center; /* 什么图片都可以*/ /*animation-delay: 2s;!*延迟2s在进行滚动*!...注意: 1、前提是把一张图片复制成3张,以实现无缝滚动,网上看了很多人此类无缝循环滚动的方法,实现出来之后,每次回到起点都会有跳动的感觉,这里经过摸索,给动画上移的距离设为图片的高度,就不会有跳动问题了...,完美无限循环+无缝滚动; 2、图片每停3s滚动一次,且每次刚好停在正中间,上线留的衔接的图片距离相等,这里就要计算一下,每次动画上移距离= 图片实际显示高度-(所在区域的总高度-上间距高度)。...以下是图片滚动的js,如果要实现动态获取图片高度,则需要写下面的js: function addKeyFrames(height,offsetHeight){ let style = document.createElement

    3.8K30

    js实现单张或多张图片持续无缝滚动

    背景: 想要实现图片持续滚动,既然使用js,就千万不要加css动画、过渡等相关样式,如果想要滚动的平滑一下,可以一像素一像素的感动,则很平滑,如果加了过渡动画,当图片重置为0时,会有往回倒的动画效果,跟预期不符...原理: 图片滚动原理同图片轮播原理,同样也适用于文字滚动等一系列滚动,通过复制最后一张图片或最后一堆文字插入第一行,或复制第一张图片或一堆文字插入在结尾,来实现无缝拼接,前提:1、必须是没有设置过渡动画的...,2、重置为0的时候与当前已经滚动到的高度对于图片的位置而言肉眼看上去没变化。...实现: html主要包含三块: 1、最外层盒子,用来展示滚动图的区域,overflow:hidden; 2、滚动的盒子,主要改变该盒子的定位值,来实现滚动,里面包含所有要滚动的图片或文字 3、包含图片或文字的盒子...this.elem.innerHTML = this.elem.innerHTML + this.elemHtml+ this.elemHtml; this.speed; // 如果向上滚或者向左滚动每次减

    7.6K10

    个人博客网站背景视觉滚动特效代码

    之前一直注重模块的视觉滚动特效以至于忽略了图片背景的视觉差滚动特效,今天把小清新主题更新了图片背景视觉差特效,记录下代码,有喜欢的自己参考教程自己动手操作下。...这是在网络上找到的一款超级轻量级的jQuery视觉滚动特效代码,该插件使用CSS background-position属性和简单的js代码来完成页内滚动时的背景图片视觉差效果,效果演示可以前往 小清新主题...,可以设置0.5+甚至更多,如果图片小于500px建议设置小一些,例如 0.25 等,根据实际情况修改。...JS代码: 复制如下代码,放在js中即可或者直接放在网页的底部(记得添加代码), jQuery(window).bind('scroll', function () ...是不是非常简单,其实就是简单的两步,复制js代码修改class类的名称,然后在div框架添加data-paralasic属性就行了,大功告成,闪人。。。

    1.6K20

    个人博客网站背景视觉滚动特效代码

    之前一直注重模块的视觉滚动特效以至于忽略了图片背景的视觉差滚动特效,今天把小清新主题更新了图片背景视觉差特效,记录下代码,有喜欢的自己参考教程自己动手操作下。...这是在网络上找到的一款超级轻量级的jQuery视觉滚动特效代码,该插件使用CSS background-position属性和简单的js代码来完成页内滚动时的背景图片视觉差效果,效果演示可以前往 小清新主题...,可以设置0.5+甚至更多,如果图片小于500px建议设置小一些,例如 0.25 等,根据实际情况修改。...JS代码: 复制如下代码,放在js中即可或者直接放在网页的底部(记得添加代码), jQuery(window).bind('scroll', function () ...是不是非常简单,其实就是简单的两步,复制js代码修改class类的名称,然后在div框架添加data-paralasic属性就行了,大功告成,闪人。。。

    2K20

    marquee一行代码实现滚动跑马灯效果无需js

    网站设计案例展示一般用幻灯片切换会比较高大上,但这需要用到js,第三方博客等网站不支持外嵌js,或者有些网友不知道怎么用,有一种方法可以解决,用标签,可以实现多种滚动效果...,无需js控制。...marquee标签不仅可以滚动文字,也可以滚动图片,表格等,而且使用起来方便快捷,节省了不少时间。实现效果可以看右侧栏。怎么用呢?...            说明:up:从下向上滚动;down:从上向下滚动;left:从右向左滚动;right:从左向右滚动。            ...          5.loop:设定滚动循环的次数(默认值是-1,滚动会不断的循环下去)             语法:...

    5.9K50

    jquery无缝隙连续滚动代码

    通常我们在做网页布局的时候,客户为要求在某个地方实现图片滚动或文字滚动的展示,这就是所谓的跑马灯效果,在以前蓝叶用html标签marquee来做跑马灯效果,marquee不是很完美,如果一个层的宽度或高度过长...,那么中间会用空隙显得很不美观;现在蓝叶用jquery无缝隙连续滚动代码来实现跑马灯效果,这段jquery无缝隙连续滚动代码可以自由设置,向左、向右、向上、向下的滚动效果,如果你需要就把以下代码复制到你需要的地方...; $(document).ready(function(){ //这里设置DIV层的样式名 $("#gdtw").imgscroll({ speed: 40, //图片滚动速度...amount: 0, //图片滚动过渡时间 width: 1, //图片滚动步数 dir: "left" // "left" 或 "up..." 向左或向上滚动 }); });

    6.8K30

    还记得当前火爆全球的像素小鸟吗? 我用Cocos Creator复刻了一版!

    玩法介绍 公众号开通了小半年,一直也不知道写点什么,身为一个只会撸码的程序猿,每天写bug,改bug,成了一个循环。写文章这种事,好像离我很遥远。...模块说明 小鸟 小鸟由三张静态图组成,运行时不断的切换显示三张图片,达到小鸟飞翔的效果。 ? 在小鸟节点上添加一个静态刚体组件,目的是在刚进入游戏时小鸟处于静止状态,不会下落。...代码示例 地面 地面节点由两张草地图片拼接而成,游戏开始运行时,控制两张图片不断向左移动,当一张图移出屏幕后,就把坐标重置另一张图后面,达到地面不断滚动的效果。...在两张草地图片上分别挂一个静态刚体组件,目的是使草地不受重力影响,同时小鸟和草地碰撞后会触发碰撞检测回调,此时就会判定为游戏结束。 ? ?...游戏开始时,两组管道不断向左移动,造成小鸟向前飞的错觉。当一组管道移出屏幕后,把坐标重置到另一组管道的后面,达到不断滚动的效果。

    87720

    bootstrap源码分析之Carousel

    源码文件: Carousel.scss Carousel.js 实现原理: 隐藏所有要显示的元素,然后指定当前要显示的为block,宽、高自适应 源码分析: 1、Html结构:主要分为以四个部分  ...icon-prev、icon-next两种额外样式   2.4、Carousel-indicators:圆圈部分样式,都是绝对定位,每个li设置为行内块元素,用text-indent:-999来隐藏字体 3、Js...,如果支持css动画就用动画切换,否则直接加css来切换     3.1.7、动画切换原理:       3.1.7.1、Prev:是向右滚动图片,会组合出的样式:active right(active...项) prev right(下一项),这时prev自身为-100%,把图片放在最左边       3.1.7.2、Next:是向左滚动图片 active left(active项)、next left(...:图片向左,那就应该运行图片宽度的-100%       3.1.7.5、对比图: ?

    2K90
    领券