全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

原JS实现banner图的常用功能

虽然,用jQuery实现banner图的各种效果十分简单快捷,但是我今天用css+js代码实现了几个banner图的常用功能,效果还不错。

此次,主要想实现以下功能:

  1. banner图循环不间断切换

  2. 通过自制按钮实现指定性banner图的切换

  3. 通过方向按钮实现banner图左/右定向依次切换

  4. 当banner图存在onmouseover事件时,停止banner切换,当存在onmouseout时继续切换

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   #banner{
    width: 716.8px;
    height: 537.6px;
    background-color: aquamarine;
    margin: 100px auto;
    position: relative;
    font-size: 0px;  /*清除img图片间的回车符产生的间隔*/
    overflow: hidden;
   }
   #banner #bannerImg{
    width: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
    white-space: nowrap; /*使这个图片能一行显示*/
    transition:all 1s linear;
   }
   #banner #bannerImg .img{
    width: 100%;
   }
   #banner #bannerButton{
    font-size: 16px;
    color: white;
    position: absolute;
    bottom: 10px;
    left: 20px;
   }
   #banner #bannerButton .Button{
    border-radius: 9px;
    border: none;
    outline: none;
    cursor: pointer;
    background-color: #7FFFD4;
   }
   #banner #bannerButtonAside .div1{
    position: absolute;
    right: 10px;
    top: 50%;
    margin-top: -32px;
    cursor: pointer;
   }
   
   #banner #bannerButtonAside .div2{
    position: absolute;
    left: 10px;
    top: 50%;
    margin-top: -32px;
    cursor: pointer;
   }
  </style>
 </head>
 <body>
  <!--实现 左右按钮,1234,自动滑动,鼠标停上显示小手不动 暂停。-->
  <section id="banner" onmouseover="changeStop()" onmouseout="changeStart()">
   
   <!--以下是我们的banner图-->
   <div id="bannerImg">
    <img class="img" src="../img/c95d7b9676ae739cccfc55457b93fe9c.jpg"/>
    <img class="img" src="../img/5f5bdebddd8f1d276aeac8af5f8fa38d.jpg"/>
    <img class="img" src="../img/5f5e5c091ecb0525fc8204f200670dd9.jpg"/>
    <img class="img" src="../img/efa11cad9094f951061ee21324277efe.jpg"/>
    <img class="img" src="../img/0b54c021bd4384c168d835dfc0908018.jpg"/>
    <img class="img" src="../img/25d10d413faca3bdd7e2d88667f4298f_看图王.jpg"/>
    <img class="img" src="../img/c95d7b9676ae739cccfc55457b93fe9c.jpg"/> <!--第7张与第一张为同一图片,消除图片切换间断-->
   </div>
   
   <!--以下是我们左下方的banner图按钮-->
   <div id="bannerButton">
    <button class="Button" onclick="buttonChange(0)">1</button>
    <button class="Button" onclick="buttonChange(1)">2</button>
    <button class="Button" onclick="buttonChange(2)">3</button>
    <button class="Button" onclick="buttonChange(3)">4</button>
    <button class="Button" onclick="buttonChange(4)">5</button>
    <button class="Button" onclick="buttonChange(5)">6</button>
   </div>
   
   <!--以下是我们左右两个方向按钮-->
   <div id="bannerButtonAside">
    <div class="div1" onclick="asideChange(1)">
     <img src="../img/forword.png"/>
    </div>
    <div class="div2" onclick="asideChange(0)">
     <img src="../img/back.png"/>
    </div>
   </div>
  </section>
 </body>
 
 <script type="text/javascript">
  var bannerImg=document.getElementById("bannerImg"); /*取出img容器的节点*/
  var Button=document.getElementsByClassName("Button"); /*取出所有的button按钮*/
  var num=0;  /*定义全局变量num,控制banner的切换次序*/
  var aaa=0;  /*定义一个全局变量,用来取定时器函数,并在没有鼠标事件的时候清除定时器*/
   
  /*通过定时器实现banner图的每3000毫秒切换一次的效果的changeStart()函数*/
  function changeStart(){
    aaa=setInterval(function(){
    if (num<=6) {
     bannerImg.style.transition="all 1s linear";
     bannerImg.style.left=(-716.8)*(num)+"px";
     num++;
    }else{
     bannerImg.style.transition="all 0s linear";  /*消除num=0时,bannerImg移动的过渡效果*/
     num=0;
     bannerImg.style.left=(-716.8)*(num)+"px";
     
    }
    console.log("哈哈哈继续");
   },3000)
  }
  changeStart();
  
  /*以下是当鼠标悬浮在banner图上时,图片停止自动切换的changeStop()函数*/
  function changeStop(){
   clearInterval(aaa); 
   console.log("停止他");
  }
  
  /*以下是点击按钮实现对应banner图切换的change()函数*/
  function buttonChange(Num){
   num=Num+1;
   bannerImg.style.transition="all 0s linear";
   bannerImg.style.left=(-716.8)*(Num)+"px";
  }
  
  /*以下是点击左右两个按钮实现banner图切换的buttonChange()函数*/
  function asideChange(x){ /*通过传递形参x,判断往左/往右切换banner图*/
   if (num!=6&&x==1) {
    num++;
   }else if(num==6&&x==1){
    num=0;
   }else if(num!=0&&x==0){
    num--;
   }
   else if(num==0&&x==0){
    num=5;
   }
   bannerImg.style.transition="all 0s linear";
   bannerImg.style.left=(-716.8)*(num)+"px";
  }
 </script>
</html> 

  但是经过博主的测试,发现程序存在一定的瑕疵,第一张图片的保留时间比其他图片长,而且每次重新开启定时器均存在这个问题。暂时博主还没有比较简单

省事的方法改良他,所以仅供参考思路,以后要用,当然还是jQuery省事啦!

  如果存在错误,欢迎朋友们指出,我们一起探讨,改良代码!

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


# js  # banner  # JS 实现banner图片轮播效果(鼠标事件)  # 原生javascript移动端滑动banner效果  # JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码  # js实现三张图(文)片一起切换的banner焦点图  # JS选项卡动态替换banner图片路径的方法  # javascript 上下banner替换具体实现  # js实现淘宝首页的banner栏效果  # 鼠标  # 第一张  # 全局变量  # 几个  # 还没有  # 并在  # 这个问题  # 朋友们  # 不动  # 要用  # 还不错  # 在一  # 我们一起  # 看图  # 大家多多  # 图上  # 往右  # 往左  # 仅供参考  # 实现了 


相关文章: 网站制作壁纸教程视频,电脑壁纸网站?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在自有机房高效搭建专业网站?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  高性价比服务器租赁——企业级配置与24小时运维服务  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  江苏网站制作公司有哪些,江苏书法考级官方网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何用PHP快速搭建CMS系统?  如何快速搭建安全的FTP站点?  如何用IIS7快速搭建并优化网站站点?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  c# 在高并发下使用反射发射(Reflection.Emit)的性能  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  Swift中循环语句中的转移语句 break 和 continue  如何制作算命网站,怎么注册算命网站?  高端云建站费用究竟需要多少预算?  如何快速生成高效建站系统源代码?  如何选择PHP开源工具快速搭建网站?  如何在橙子建站上传落地页?操作指南详解  制作企业网站建设方案,怎样建设一个公司网站?  南京网站制作费用,南京远驱官方网站?  如何零基础在云服务器搭建WordPress站点?  如何正确选择百度移动适配建站域名?  内网网站制作软件,内网的网站如何发布到外网?  临沂网站制作企业,临沂第三中学官方网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何零成本快速生成个人自助网站?  ,有什么在线背英语单词效率比较高的网站?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何规划企业建站流程的关键步骤?  建站三合一如何选?哪家性价比更高?  如何通过NAT技术实现内网高效建站?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  图册素材网站设计制作软件,图册的导出方式有几种?  如何快速完成中国万网建站详细流程?  如何在阿里云完成域名注册与建站?  如何在局域网内绑定自建网站域名?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何在阿里云域名上完成建站全流程?  如何基于云服务器快速搭建个人网站?  建站之星如何实现网站加密操作?  建站之星2.7模板:企业网站建设与h5定制设计专题  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站之星如何快速生成多端适配网站?  定制建站策划方案_专业建站与网站建设方案一站式指南  宁波免费建站如何选择可靠模板与平台?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。