文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript如何实现首页图片轮播图效果

2023-07-02 00:16

关注

这篇文章主要介绍“JavaScript如何实现首页图片轮播图效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现首页图片轮播图效果”文章能帮助大家解决问题。

一、轮番图

效果展示:

JavaScript如何实现首页图片轮播图效果

轮播图是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模块叫做轮播模块。

二、源码展示

设置body

<body>  <div class="m-view">    <div class="slide" >      <img src="1.jpg" alt="4">      <img src="2.jpg" alt="0">      <img src="3.jpg" alt="1">      <img src="4.jpg" alt="2">      <img src="5.jpg" alt="3">      <img src="3.jpg" alt="4">      <img src="2.jpg" alt="0">    </div>    <div class="prev"><</div>    <div class="next">></div>    <div class="pointer">      <span class="button on" index="0"></span>      <span class="button" index="1"></span>      <span class="button" index="2"></span>      <span class="button" index="3"></span>      <span class="button" index="4"></span>    </div>  </div>

样式设置

<style>    .m-view,.m-view .slide img{      position: relative;      width: 500px;      height: 300px;    }    .m-view{      overflow: hidden;    }    .m-view .slide{      position: absolute;      width: 500px;      height: 300px;    }    .m-view .slide img{      margin-right: -5px;    }    .m-view .prev,.m-view .next{      position: absolute;      top: 40%;      font: 60px/60px Microsoft YaHei;      color: #00BFFF;    }    .m-view .prev{      left: 10px;    }    .m-view .next{      right: 10px;    }    .m-view .pointer{      position: absolute;      bottom: 40px;      left: 33%;    }    .m-view .pointer span{      display: inline-block;      width: 40px;      height: 40px;      border-radius: 20px;      margin-right: 10px;      background-color: #00FF00;    }    .m-view .pointer .on{      background-color: #1E90FF;    }    img{      object-fit: contain;    }  </style>

实现轮番

  var view=document.getElementsByClassName('m-view')[0];    var slide=document.getElementsByClassName('slide')[0];    var prev=document.getElementsByClassName('prev')[0];    var next=document.getElementsByClassName('next')[0];    var button=document.getElementsByClassName('button');    var curIndex=0;//当前图片的索引位置    var toggled=true;//是否正在切换,true表明切换已完成,此时才能切换        function Toggle () {      var TIMER=50;//滑动一次所用的时间,它是setInterval的第二个参数      var time=800;//每切换一张图片总共用的时长      var times=time/TIMER;//每切换一张图片需滑动的次数      var stepLenth=800/times;//每次滑动的步长      var leftToggle=function () {        var t1=times;        function leftStep(){          slide.style.left=parseInt(slide.style.left)+stepLenth+"px";          t1--;          if (!t1) {            clearInterval(interval);            curIndex--;            if (curIndex<0) {              slide.style.left=parseInt(slide.style.left)-4000+"px";              curIndex=4;            };            toggled=true;          };        };        if (toggled==true) {          toggled=false;          button[curIndex].className="button";          if (curIndex!=0) {            button[curIndex-1].className="button on";          }else{            button[curIndex+4].className="button on";          }          var interval=setInterval(leftStep,TIMER);        };      };      var rightToggle=function () {        var t2=times;        function leftStep(){          slide.style.left=parseInt(slide.style.left)-stepLenth+"px";          t2--;          if (!t2) {            clearInterval(interval);            curIndex++;            if (curIndex>4) {              slide.style.left=parseInt(slide.style.left)+4000+"px";              curIndex=0;            };            toggled=true;          };        };        if (toggled==true) {          toggled=false;          button[curIndex].className="button";          if (curIndex!=4) {            button[curIndex+1].className="button on";          }else{            button[curIndex-4].className="button on";          };          var interval=setInterval(leftStep,TIMER);        };      }      this.leftToggle=leftToggle;//输出对外的接口      this.rightToggle=rightToggle;    };    var toggle=new Toggle();    prev.onclick=function () {      toggle.leftToggle();    };    next.onclick=function () {      toggle.rightToggle();    };        for (var i = 0; i < button.length; i++) {      button[i].onclick=function () {        var newIndex=parseInt(this.getAttribute("index"));        if (newIndex!=curIndex) {          var distance=-800*(newIndex-curIndex);          slide.style.left=parseInt(slide.style.left)+distance+"px";          button[curIndex].className="button";          button[newIndex].className="button on";          curIndex=newIndex;        };      };    }        var intervalo=setInterval(toggle.rightToggle,3000);    view.onmouseover=function () {      clearInterval(intervalo);    }    view.onmouseout=function () {      intervalo=setInterval(toggle.rightToggle,3000);    }

关于“JavaScript如何实现首页图片轮播图效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯