返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS实现图片轮播跑马灯
  • 466
分享到

JS实现图片轮播跑马灯

2024-04-02 19:04:59 466人浏览 独家记忆
摘要

本文实例为大家分享了js实现图片轮播跑马灯的具体代码,供大家参考,具体内容如下 实现原理: 1、准备一个展示区域的盒子,设置宽高;2、准备一个存放所有图片的盒子,将所有图片依次放入,

本文实例为大家分享了js实现图片轮播跑马灯的具体代码,供大家参考,具体内容如下

实现原理:

1、准备一个展示区域的盒子,设置宽高;
2、准备一个存放所有图片的盒子,将所有图片依次放入,设置溢出隐藏

一、html布局

<div class="wrapper">
<div id="container"><!--图片展示区域盒子-->
  <ul id="imglist"><!--将所有图片并列展示盒子-->
     <li>
        <img src="./img/banner.jpg" alt="暂无图片">
     </li>
     <li>
       <img src="./img/banner0.jpg" alt="暂无图片">
     </li>
     <li>
        <img src="./img/banner.jpg" alt="暂无图片">
     </li>
     <li>
        <img src="./img/banner0.jpg" alt="暂无图片">
     </li>
  </ul>
  <ul id="point">
    <li class="selected"></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>
</div>

二、CSS样式

.wrapper{
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 870px;
}
#container{
    width: 1920px;
    height: 870px;
    position: absolute;
    top: 50%;
    left: 50%;
    overflow: hidden;
    transfORM: translate(-50%,-50%);
    -WEBkit-transform: translate(-50%,-50%);
    -moz-transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
    -o-transform: translate(-50%,-50%);
    background-color: #aa201c;
}
#imglist{
    width: 7680px;
    height: 870px;
    list-style-type: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}
#imglist>li{
    width: 1920px;
    height: 870px;
    float: left;
    overflow: hidden;
}
#point{
    list-style-type: none;
    position: absolute;
    bottom: 5px;
    left: 50%;
    
    
    width: 100%;
    height: 29px;
    line-height: 29px;
    z-index: 10;
}
#point>.selected{
    background-color: #aa201c;
}
#point>li{
    width: 16px;
    height: 16px;
    float: left;
    background-color: #c5c8ce;
    border-radius: 100%;
    margin-right: 10px;
    -webkit-border-radius: 100%;
}

三、JS代码

var wrap = document.getElementById("container");
var inner = document.getElementById("imglist");
var spanList = document.getElementById("point").getElementsByTagName("li");
var left = document.getElementById("left");
var right = document.getElementById("right");

var clickFlag = true;//设置左右切换标记位防止连续按
var time//主要用来设置自动滑动的计时器
var index = 0;//记录每次滑动图片的下标
var Distance = wrap.offsetWidth;//获取展示区的宽度,即每张图片的宽度
//定义图片滑动的函数
function AutoGo() {
    var start = inner.offsetLeft;//获取移动块当前的left的开始坐标
    var end = index * Distance * (-1);//获取移动块移动结束的坐标。
    //计算公式即当移动到第三张图片时,图片下标为2乘以图片的宽度就是块的left值。
    var change = end - start;//偏移量

    var timer;//用计时器为图片添加动画效果
    var t = 0;
    var maxT = 30;
    clear();//先把按钮状态清除,再让对应按钮改变状态
    if (index == spanList.length) {
        spanList[0].className = "selected";
    } else {
        spanList[index].className = "selected";
    }
    clearInterval(timer);//开启计时器前先把之前的清
    timer = setInterval(function () {
        t++;
        if (t >= maxT) {//当图片到达终点停止计时器
            clearInterval(timer);
            clickFlag = true;//当图片到达终点才能切换
        }
        inner.style.left = change / maxT * t + start + "px";//每个17毫秒让块移动
        if (index == spanList.length && t >= maxT) {
            inner.style.left = 0;
            index = 0;
            //当图片到最后一张时把它瞬间切换回第一张,由于都同一张图片不会影响效果
        }
    }, 17);
}
//编写图片向右滑动的函数
function forward() {
    index++;
    //当图片下标到最后一张把小标换0
    if (index > spanList.length) {
        index = 0;
    }
    AutoGo();
}
//编写图片向左滑动函数
function backward() {
    index--;
    //当图片下标到第一张让它返回到倒数第二张,
    //left值要变到最后一张才不影响过渡效果
    if (index < 0) {
        index = spanList.length - 1;
        inner.style.left = (index + 1) * Distance * (-1) + "px";
    }
    AutoGo();
}

//开启图片自动向右滑动的计时器
time = setInterval(forward, 3000);

//设置鼠标悬停动画停止
wrap.onmouseover = function () {
    clearInterval(time);
}
wrap.onmouseout = function () {
    time = setInterval(forward, 3000);
}
//遍历每个按钮让其切换到对应图片
for (var i = 0; i < spanList.length; i++) {
    spanList[i].onclick = function () {
        index = this.innerText - 1;
        AutoGo();
    }
}
//清除页面所有按钮状态颜色
function clear() {
    for (var i = 0; i < spanList.length; i++) {
        spanList[i].className = "";
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JS实现图片轮播跑马灯

本文链接: https://lsjlt.com/news/154258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS实现图片轮播跑马灯
    本文实例为大家分享了JS实现图片轮播跑马灯的具体代码,供大家参考,具体内容如下 实现原理: 1、准备一个展示区域的盒子,设置宽高;2、准备一个存放所有图片的盒子,将所有图片依次放入,...
    99+
    2024-04-02
  • 原生JS实现图片跑马灯特效
    今天给大家分享一个用原生JS实现的图片跑马灯特效,效果如下: 实现的代码如下,欢迎大家复制粘贴。 <!DOCTYPE html> <html> &l...
    99+
    2024-04-02
  • 微信小程序实现轮播图标题跑马灯
    本文实例为大家分享了微信小程序实现轮播图标题跑马灯的具体代码,供大家参考,具体内容如下 微信小程序做轮播图,轮播图下的标题如果不长不需要跑马灯效果,过长的无法显示全的则添加跑马灯效果...
    99+
    2024-04-02
  • vue实现无缝轮播效果(跑马灯)
    本文实例为大家分享了vue实现无缝轮播效果的具体代码,供大家参考,具体内容如下 1.首先创建两个vue组件Sweiper.vue和SweiperItem.vue; 2.将两个组件引入...
    99+
    2024-04-02
  • Android实现循环轮播跑马灯的效果
    目录先看效果池化思路创造工厂轮询切换动画监听对外能力完整代码先看效果 支持暂停,恢复,view自定义和池化回收复用。使用上,只需要引入xml,并绑定factory即可,内部会在a...
    99+
    2023-05-18
    Android实现循环轮播跑马灯效果 Android实现跑马灯 Android跑马灯
  • 微信小程序怎么实现轮播图标题跑马灯
    这篇“微信小程序怎么实现轮播图标题跑马灯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现轮播图标题跑马灯”文...
    99+
    2023-07-02
  • Vue.js如何实现轮播图走马灯
    这篇文章主要为大家展示了“Vue.js如何实现轮播图走马灯”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue.js如何实现轮播图走马灯”这篇文章吧。这个是ht...
    99+
    2024-04-02
  • Unity3d实现跑马灯广播效果
    本文实例为大家分享了Unity3d实现跑马灯广播效果的具体代码,供大家参考,具体内容如下 废话不多说,直接上代码 using DG.Tweening; using System.Co...
    99+
    2024-04-02
  • JS实现简单图片轮播效果
    本文实例为大家分享了JS实现简单图片轮播效果的具体代码,供大家参考,具体内容如下 实现效果 左右按钮可点击左右移动显示图片进行无缝滚动 下面的小圆圈点击可跳到对应...
    99+
    2024-04-02
  • js实现网页图片轮换播放
    本文实例为大家分享了js实现网页图片轮换播放的具体代码,供大家参考,具体内容如下 1、实现效果如下: 2、实现功能: (1)点击左右箭头之后,下面显示的图片会换成对应的上一张或下一...
    99+
    2024-04-02
  • js+css实现卡片轮播图效果
    本文实例为大家分享了js+css实现卡片轮播图效果的具体代码,供大家参考,具体内容如下 实现点击的时候切换卡片,自动轮播,鼠标移入暂停,移出继续轮播,有动画事件效果就是这样 下面是...
    99+
    2024-04-02
  • js如何实现图片轮播特效
    这篇文章将为大家详细讲解有关js如何实现图片轮播特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先看一眼效果图:代码:<html> <head>...
    99+
    2024-04-02
  • js实现图片轮播切换效果
    最近在b站上学习的时候,学到了一个用原生js实现图片轮播切换效果的实战,码下来收藏 上图是这个小实战的效果图,整个小实战所实现的功能是图片自动轮播切换、点击上下键图片切换上下图片、...
    99+
    2024-04-02
  • Ant Design Vue 走马灯实现单页多张图片轮播效果
    最近的项目有个需求是,这种单页多图一次滚动一张图片的轮播效果,项目组件库是antd 然而用了antd的走马灯是这样子的 我们可以看到官网给的api是没有这种功能,百度上也多是在c...
    99+
    2024-04-02
  • JS如何实现跑马灯效果
    这篇文章将为大家详细讲解有关JS如何实现跑马灯效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果如下:(动态效果可复制代码查看,案例中的图片可自行选择添加)代码如下:...
    99+
    2024-04-02
  • vue实现轮播图片
    本文实例为大家分享了vue实现轮播图片的具体代码,供大家参考,具体内容如下 1、效果图 2、案例 <template>        <section class...
    99+
    2024-04-02
  • 原生JS实现图片轮播 JS实现小广告插件
    最近想用原生JS多实现一些小功能,现在写到博客里,大家可以借鉴,有问题欢迎指出。 轮播图 需求: 图片循环轮播,可点击左右切换,切换状态与<li>绑定,鼠标移入图片悬停,...
    99+
    2024-04-02
  • JS实现轮播图案例
    本文实例为大家分享了JS实现轮播图案例的具体代码,供大家参考,具体内容如下 实现功能: 1、自动轮播:鼠标停留在轮播图上时不切换图片,鼠标离开后自动轮播。 2、点击左右按钮切换图片。...
    99+
    2024-04-02
  • JS如何实现轮播图
    本篇内容介绍了“JS如何实现轮播图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现功能:自动轮播:鼠标停留在轮播图上时不切换图片,鼠标离开...
    99+
    2023-06-29
  • 怎么使用js实现图片轮播效果
    这篇文章主要介绍怎么使用js实现图片轮播效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!只有img标签的html代码,做测试用:<body>  <img...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作