精华内容
下载资源
问答
  • WEB轮播大全

    2018-08-31 10:08:28
    各种各样的网页轮播方式,满足你的各种需求,响应式轮播
  • web实现动态轮播

    2018-07-01 17:08:27
    利用HTML代码,实现web3D轮播图。包括js的使用,脚本的使用。
  • 用于网站前端开发,页面展示效果动态轮播图滚动,且可点击操作切换轮播图展示代码
  • web轮播图demo

    2016-01-22 12:13:08
    web轮播图demo
  • 主要给大家介绍了利用纯js + transition动画实现移动端web轮播图的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面来一起看看吧。
  • web轮播图+侧边栏.zip

    2021-06-03 13:19:37
    web大作业侧边栏+轮播
  • 从业5年前端纯JS轮播图,逻辑清楚。
  • web实现轮播

    千次阅读 2017-02-26 13:05:56
    //轮播图 function banner(box,bannerStyle){ var liWidth,buttonBox,indicator,leftButton,buttonHieght,rightButton,methodId,liNumber,boxWidth = box.width(),index = 0; //此处为重点 var cloneObject = ...

    html代码,图片请自行准备

    <!DOCTYPE html>      
    <html>      
        <head>      
            <meta charset="utf-8" />      
            <title></title>      
            <link rel="stylesheet" href="css/banner.css" />    
            <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>    
            <script src="js/banner.js" ></script>     
        </head>      
        <body style="text-align: center;">      
            <div class="box">      
                <ul>      
                    <li>    
                        <a href="#">
                        	<img src="img/b.jpg"/>    
                        </a>    
                    </li>      
                    <li>    
                        <a href="#">
                        	<img src="img/b.jpg"/>    
                    </a>    
                    </li>      
                    <li>    
                        <a href="#"><img src="img/b.jpg"/>    
                    </a>    
                    </li>      
                </ul>             
            </div>      
            <div>    
            </div>    
            <!--有些刚接触编程可能不知道,为什么要把js代码放着呢?因为在上面的html加载完之后,js里面的元素才不会为空,若放在html元素之前,    
                则在js执行的时候,会出现元素不存在的异常,因为html元素还没加载,程序的执行是从上往下执行的,这点不可不查。-->    
                <script type="text/javascript">  
                var bannerStyle = {selectedStyle:"selectedStyle",indicatorPosition:"left",dotStyle:"dotStyle",indicatorBoxStyle:"indicatorBoxStyle",buttonStyle:"bannerButtonStyle",showButton:true,automaticSwitch:false,buttonMargin:"30px",delay:500};	
               	banner($(".box"),bannerStyle);
            	</script>     
        </body>      
    </html>    




    js代码:

    //轮播图  
    function banner(box,bannerStyle){    
    var liWidth,buttonBox,indicator,leftButton,buttonHieght,rightButton,methodId,liNumber,boxWidth = box.width(),index = 0;       
    //此处为重点    
    var cloneObject = box.children("ul").children("li").first().clone();    
    //此处为重点       
    box.children("ul").append(cloneObject);
    liNumber = box.children("ul").children("li").length;
    box.css("width",boxWidth);
    box.append("<div><button><</button><button>></button></div>");
    box.append("<div></div>");
    buttonBox = box.children("div").eq(0).addClass("buttonBoxStyle");
    indicator = box.children("div").eq(1).addClass(bannerStyle.indicatorBoxStyle);
    leftButton = buttonBox.find("button").eq(0).addClass(bannerStyle.buttonStyle).css("left",bannerStyle.buttonMargin);    
    rightButton = buttonBox.find("button").eq(1).addClass(bannerStyle.buttonStyle).css("right",bannerStyle.buttonMargin);    
    buttonHieght = leftButton.height();
    buttonBox.css("margin-top",-buttonHieght/2);
    box.children("ul").children("li").css("width",boxWidth);
    box.children("ul").children("li").children("a").children("img").css("width",boxWidth);
    box.css("height",box.children("ul").children("li").children("a").children("img").height());
    buttonBox.css("width",boxWidth);
    indicator.css("width",boxWidth);
    liWidth = box.children("ul").children("li").width();
    //添加指示器
    for(var a = 0;a<liNumber-1;a++){    
        indicator.append("<span></span>");    
        indicator.find("span").eq(a).addClass(bannerStyle.dotStyle);    
        if(a == 0){    
        indicator.find("span").eq(0).addClass(bannerStyle.selectedStyle);    
        }    
        if(a == liNumber-2){    
            indicator.find("span").eq(a).css("margin-right","0px");    
        }    
        indicator.find("span").eq(a).click(function(){    
            index = $(this).index();    
            move();    
        });    
    }    
    if(bannerStyle.indicatorPosition=="left"){
    	indicator.css("text-align","left");
    	indicator.css("padding-left","10px");
    }else if(bannerStyle.indicatorPosition=="right"){
    	indicator.css("text-align","right");
    	indicator.css("padding-right","10px");
    }else{
    	indicator.css("left","0px");
    }
       leftButton.click(function(){    
        index--;    
        move();    
       });    
       rightButton.click(function(){    
        index++;    
        move();    
       });    
       function move(){    
        //滑动到最左再接着向左滑动的话便进入    
       if(index == -1){    
        index = liNumber-2;    
        box.children("ul").css("left",-(liNumber-1)*liWidth);    
       }    
       //滑动到最右再接着向左滑动的话便进入    
       if(index == liNumber){    
        box.children("ul").css("left","0px");    
            index = 1;    
       }    
        box.children("ul").stop().animate({left:-index*liWidth},bannerStyle.delay);    
        //设置指示器    
        if(index!=liNumber-1){    
            indicator.children().eq(index).addClass(bannerStyle.selectedStyle).siblings().removeClass(bannerStyle.selectedStyle);    
        }else{    
            indicator.children().eq(0).addClass(bannerStyle.selectedStyle).siblings().removeClass(bannerStyle.selectedStyle);    
        }    
       }    
        if(bannerStyle.showButton){
            buttonBox.css("visibility","visible"); 	
        }else{
        	buttonBox.css("visibility","hidden"); 	
        }
        if(bannerStyle.automaticSwitch)
       setTime();    
       function setTime(){       
       methodId=setInterval(function(){   
                index++;    
                move();    
            },2000);    
         }    
            box.hover(function(){    
                clearInterval(methodId);
                if(!bannerStyle.showButton)
                buttonBox.css("visibility","visible");    
            },    
            function(){      
    			if(bannerStyle.automaticSwitch)
                setTime();  
                if(!bannerStyle.showButton)
                buttonBox.css("visibility","hidden");    
            });     
    }    




    css代码:

    div,ul,li{      
                margin: 0px;      
                padding: 0px;      
            }      
                .box{           
                    overflow: hidden;    
                    width: 100%; 
                    height: auto;         
                    display: inline-block;      
                    position: relative;      
                }      
                .box>ul>li{      
                    float: left;              
                    position: relative;         
                }      
                .box>ul{           
                    width: 99999px;          
                    list-style: none;
                    position: absolute;           
                }      
                /*按钮盒子风格*/
                .buttonBoxStyle{        
                    top: 50%;      
                    position: relative;      
                    width: 100%;          
                    z-index: 1;   
                }     
                /*buttonStyle*/ 
                .bannerButtonStyle{     
                    border-radius: 50%;     
                    color: white;         
                    position: absolute;      
                    font-size: 26px;      
                    border-style: none;      
                    width: 50px;      
                    height: 50px;      
                    background: rgba(0,0,0,0.4);      
                }        
                /*指示器盒子风格*/ 
                .indicatorBoxStyle{      
                	left: 0px;   
                    bottom: 5px;      
                    position: absolute; 
                }
                /*指示器圆点的基础风格*/     
                .dotStyle{    
                    display: inline-block;    
                    width: 8px;    
                    height: 8px;    
                    margin-right: 10px;    
                    background: orangered;    
                    border-radius: 50%;    
                    border: 1px solid white;    
                } 
                /*选中圆点的颜色*/
                .selectedStyle{background: #333333;}   





    效果图:

    (功能)

    1,可以点击左右或点击圆点切换。

    2,鼠标放上去停止滚动。


    初学web不久,如有写的不好或者不规范的地方,望不吝赐教,感谢!



    展开全文
  • 2.移动端web轮播

    2020-03-20 18:42:59
    html+css 轮播图大小为618*244,只支持触摸图片时滑动,不支持鼠标滑动。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=...
    1. html+css 轮播图大小为618*244,只支持触摸图片时滑动,不支持鼠标滑动。

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <style type="text/css">
              *,*::before,*::after{
                  padding: 0;
                  margin: 0;
                  box-sizing:border-box;
                  -webkit-box-sizing: border-box;
                  /*清除点击高亮效果*/
                  tap-highlight-color:transparent;
                  -webkit-tap-highlight-color:transparent;
              }
              img{
                  vertical-align: bottom;
              }
              body{
                  max-width: 640px;
                  min-width:320px;
                  width:100%;
                  margin:0 auto;
                  background-color:#f5f5f5;
                  font-size:14px;
                  color:#333;
                  font-family: "Microsotr YaHei", sans-serif;
              }
      
              ul,ol{
                  list-style:none;
              }
              .banner{
                  overflow: hidden;
                  position: relative;
              }
              .banner ul:first-child{
                  transform: translateX(-10%);
                  width:1000%;
              }
              .banner ul:first-child li{
                  width:10%;
                  float: left;
              }
              .banner ul:first-child li img{
                  width: 100%;
              }
              .banner ul:last-child {
                  position: absolute;
                  bottom:10px;
                  left:50%;
              margin-left: -70px;
              }
              .banner ul:last-child li{
                  width: 8px;
                  height: 8px;
                  border-radius: 50%;
                  border:1px solid #fff;
                  margin-right: 10px;
                  float: left;
              }
              .banner ul:last-child li.active{
                  background-color: #fff;
              }
              .banner ul:last-child li:last-child{
                  margin-right: 0;
                  
              }
              .clearFl::before,.clearFl::after{
                  content:"";
                  display: block;
                  visibility: hidden;
                  height:0;
                  line-height: 0;
                  clear:both;
              }
          </style>
      </head>
      <body>
          <div class="banner">
              <ul>
                  <li><a href=""><img src="./images/l1.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l2.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l3.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l4.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l5.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l6.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l7.jpg" alt="banner"></a></li>
                  <li><a href=""><img src="./images/l8.jpg" alt="banner"></a></li>
              </ul>
              <ul class="point"></ul>
          </div>
          
          <script src="./js/banner.js"></script>
          <script>
              //bannner图片容器,point轮播图上的点容器
              window.onload = function(){
                  H5_banner('banner', 'point');
              }
             
          </script>
      </body>
      </html>
      
    2. javaScript

      function H5_banner(eleClass, pointClass){
          //获取bannner容器宽度
          var banner = document.querySelector("." + eleClass);
          var bannerWidth = banner.offsetWidth;
      
          //获取图片容器宽度
          var imgBox = banner.querySelector("ul:first-child");
          var imgBoxWidth = imgBox.offsetWidth;
          
          //获取轮播图小点的容器
          var pointBox = document.querySelector("." + pointClass);
         
          //获取图片数量
          var bannerBox = banner.querySelector('ul');
          var imgNum = bannerBox.querySelectorAll("li").length;
      
      
          //根据图片个数,设置小点的个数
           var bannerPoint = addPoint(pointBox, imgNum);
          //获取轮播所有的点元素
          //var bannerPoint = banner.querySelector("ul:last-child");
          var pointList = bannerPoint.querySelectorAll("li");
      
      
          //克隆第一个和最后一个图片
          cloneItem(banner);
      
          /*开始轮播 */
          var index = 1; //当前是第几个图片
          var timer = setInterval(function(){
              index ++;
              //给图片添加过渡效果
              addTransition(imgBox);
              //移动图片容器
              moveImgBox(imgBox, -index * bannerWidth);
              return index;
          }, 1000);
      
          //过渡动画结束后触发
          imgBox.addEventListener("transitionend", function (){
              if(index >= imgNum + 1){  //到达图片列表末尾时,重新回到开头,实现无缝过渡
                  index = 1;
                  //清除过度效果  达到瞬间移动实现无缝滚动的目的
                  clearTransition(imgBox);
                  moveImgBox(imgBox, -index * bannerWidth);
              }else if(index <= 0){        //当用户右滑动时,将图片定位到末尾,实现无缝过渡
                  index = imgNum;
                   //清除过度效果  达到瞬间移动实现无缝滚动的目的
                   clearTransition(imgBox);
                   moveImgBox(imgBox, -index * bannerWidth);
              }
               //过渡效果结束后,设置轮播图点的样式
              setProint(index, pointList);
          });
          //滑动轮播图效果实现
          var startX = 0; //存储滑动开始时x轴的位置
          var distanceX = 0; //存储滑动的举例
          var isMove = false;//只有当移动确实发生时触发
      
          //点触开始触发的方法
          imgBox.addEventListener('touchstart',function(e){
              //清除计时器,以免影响操作
              clearInterval(timer);
              //获取第一个触摸点的x轴坐标
              startX = e.touches[0].clientX;
              return startX;
          });
      
          //点触点移动时触发的方法
          imgBox.addEventListener('touchmove', function(e){
              //计算移动时的距离,使图片也同样移动该距离位置
              var moveX = e.touches[0].clientX;
              distanceX = moveX - startX;
              //清除图片的过渡效果,否则会有0.2s的延后
              clearTransition(imgBox);
              //移动图片
              moveImgBox(imgBox, -index * bannerWidth + distanceX);
              //将判断设为true
              isMove = true;
          });
      
          //点触点结束时触发的方法
          imgBox.addEventListener('touchend',function(e){
              if(isMove){
                   //滑动图片大于窗口大小的1/3时,则切换为上一张或者下一张图片,否则返回到原来的位置
                  if(Math.abs(distanceX) < bannerWidth/3){
                      //添加过渡效果
                      addTransition(imgBox)
                      //返回原来的位置
                      moveImgBox(imgBox, -index * bannerWidth);
                  }else{
                      if(distanceX > 0){ //上一张图片
                          index--;
                      }else{  //下一张图片
                          index++;
                      }
                      addTransition(imgBox)
                      moveImgBox(imgBox, -index * bannerWidth);
                  }
              }
              //重置所有变量
              startX = 0; //存储滑动开始时x轴的位置
              distanceX = 0; //存储滑动的举例
              isMove = false;//只有当移动确实发生时触发
             
              //移动结束,继续轮播
              timer = setInterval(function(){
                  index ++;
                  //给图片添加过渡效果
                  addTransition(imgBox);
                  //移动图片容器
                  moveImgBox(imgBox, -index * bannerWidth);
                  return index;
              }, 1000);
          });
      }
      
      
      //添加轮播图的第一个和最后一个
      function cloneItem(ele){
          //获取图片所在的容器
          var banner_box = ele.querySelector('ul');
          var firstChild = banner_box.querySelector('li:first-child').cloneNode(true);
          var lastChild = banner_box.querySelector('li:last-child').cloneNode(true);
          banner_box.prepend(lastChild);
          banner_box.append(firstChild);
      }
      
      //添加轮播图的小点
      function addPoint( pointBox, imgNum){   
          for(var i = 0; i < imgNum; i++){
              var li = document.createElement("li");
              pointBox.appendChild(li);
          }
          var first_li = pointBox.querySelector("li:first-child");
          first_li.classList.add("active");
          return pointBox;
      }
      
      
      //添加过渡动画
      function addTransition(imgBox){
          imgBox.style.transition = 'all 0.2s';
          imgBox.style.webkitTransition = 'all 0.2s';
      }
      //清除过渡动画
      function clearTransition(imgBox){
          imgBox.style.transition = 'none';
          imgBox.style.webkitTransition = 'none';
      }
      
      //移动图片容器
      //distance:移动的距离
      function moveImgBox (imgBox, distance){
          imgBox.style.transform = "translateX("+distance+"px)";
          imgBox.style.webkitTransform = "translateX("+distance+"px)";
      }
      
      //设置轮播点样式
      function setProint(index, pointList){
          /*index的取值范围为 1-imgNum */
          for(var i = 0; i < pointList.length; i++){
              pointList[i].classList.remove("active");
          }
          pointList[index - 1].classList.add("active");
          
      }
      
    展开全文
  • Demo展示 源代码 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">...meta name="viewport" content="width=device-width, initial-scale=1.0">...link href=

    Demo展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    源代码

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <link href="style.css" type="text/css" rel="stylesheet" />
    </head>
    <body>
        <ul class="slides">
            <input type="radio" id="control-1" name="control" checked>
            <input type="radio" id="control-2" name="control">
            <input type="radio" id="control-3" name="control">
            
            <!--  Left/Right Button  -->
            <div class="navigator slide-1">
              <label for="control-3">
                <i class="fas fa-chevron-left"></i>
              </label>
              <label for="control-2">
                <i class="fas fa-chevron-right"></i>
              </label>
            </div>
            
            <div class="navigator slide-2">
              <label for="control-1">
                <i class="fas fa-chevron-left"></i>
              </label>
              <label for="control-3">
                <i class="fas fa-chevron-right"></i>
              </label>
            </div>
            
            <div class="navigator slide-3">
              <label for="control-2">
                <i class="fas fa-chevron-left"></i>
              </label>
              <label for="control-1">
                <i class="fas fa-chevron-right"></i>
              </label>
            </div>
            <!--  /Left/Right Button  -->
            
            <li class="slide">1</li>
            <li class="slide">2</li>
            <li class="slide">3</li>
            
            <div class="controls-visible">
              <label for="control-1"></label>
              <label for="control-2"></label>
              <label for="control-3"></label>
            </div>
          </ul>
    </body>
    </html>
    

    style.css

    body {
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 100vh;
      }
      
      ul.slides {
        position: relative;
        width: 600px;
        height: 280px;
        list-style: none;
        margin: 0;
        padding: 0;
        background-color: #eee;
        overflow: hidden;
      }
      
      li.slide {
        margin: 0;
        padding: 0;
        width: inherit;
        height: inherit;
        position: absolute;
        top: 0;
        left: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        font-family: Helvetica;
        font-size: 120px;
        color: #fff;
        transition: .5s transform ease-in-out;
      }
      
      .slide:nth-of-type(1) {
        background-color: #F2E205;
      }
      
      .slide:nth-of-type(2) {
        background-color: #F25C05;
        left: 100%;
      }
      
      .slide:nth-of-type(3) {
        background-color: #495F8C;
        left: 200%;
      }
      
      input[type="radio"] {
        position: relative;
        z-index: 100;
        display: none;
      }
      
      .controls-visible {
        position: absolute;
        width: 100%;
        bottom: 12px;
        text-align: center;
      }
      
      .controls-visible label {
        display: inline-block;
        width: 10px;
        height: 10px;
        background-color: #fff;
        border-radius: 50%;
        margin: 0 3px;
        border: 2px solid #fff;
      }
      
      .slides input[type="radio"]:nth-of-type(1):checked ~ .controls-visible label:nth-of-type(1) {
        background-color: #333;
      }
      
      .slides input[type="radio"]:nth-of-type(2):checked ~ .controls-visible label:nth-of-type(2) {
        background-color: #333;
      }
      
      .slides input[type="radio"]:nth-of-type(3):checked ~ .controls-visible label:nth-of-type(3) {
        background-color: #333;
      }
      
      .slides input[type="radio"]:nth-of-type(1):checked ~ .slide {
        transform: translatex(0%);
      }
      
      .slides input[type="radio"]:nth-of-type(2):checked ~ .slide {
        transform: translatex(-100%);
      }
      
      .slides input[type="radio"]:nth-of-type(3):checked ~ .slide {
        transform: translatex(-200%);
      }
      
      
      /* Left/Right Button Classes Below */
      
      .navigator {
        position: absolute;
        top: 50%;
        transform: translatey(-50%);
        width: 100%;
        z-index: 100;
        padding: 0 20px;
        display: flex;
        justify-content: space-between;
        box-sizing: border-box;
        display: none;
      }
      
      .navigator i {
        font-size: 32px;
        color :#333;
      }
      
      .slides input[type="radio"]:nth-of-type(1):checked ~ .navigator:nth-of-type(1) {
        display: flex;
      }
      
      .slides input[type="radio"]:nth-of-type(2):checked ~ .navigator:nth-of-type(2) {
        display: flex;
      }
      
      .slides input[type="radio"]:nth-of-type(3):checked ~ .navigator:nth-of-type(3) {
        display: flex;
      }
    

    学习资料来源

    UP:CodingStartup起码课
    链接:bilibili.com/video/BV1Bt4y1S7kv

    展开全文
  • web 轮播图(1):

    千次阅读 2018-01-16 22:09:05
    首先是轮播图的思路: ①.用一个div(container)装需要展示的img,然后将这个大的div放进一个小的显示框(box)(即网页上可看的部分),对显示框设置超出部分隐藏。然后利用js或者css来改变container的left值,来...

    自学前端的笔记:

    首先是轮播图的思路:

    ①.用一个div(container)装需要展示的img,然后将这个大的div放进一个小的显示框(box)(即网页上可看的部分),对显示框设置超出部分隐藏。然后利用js或者css来改变container的left值,来实现图片轮播。

    ②.将所有图片设成绝对定位,装入一个div(container)容器中,通过改变图片的opacity和index或者display来实现图片轮播。

    这里先介绍第一种。

    html代码如下:

    <div id="box"><!-- 显示框 -->
        	<div id="container"><!-- 容器 -->
        		<div id="img_a">
        			<img src="img/1.jpg">
        		</div>
        		<div id="img_b">
        			<img src="img/3.jpg">
        		</div>
        		<div id="img_c">
        			<img src="img/4.jpg">
        		</div>
        		<div id="img_d">
        			<img src="img/5.jpg">
        		</div>
        		 <div id="img_e">
        			<img src="img/6.jpg">
        		</div>
        	</div>
    
            <!-- 向左或向右滑动的按钮 -->
        	 <img src="img/new_l.png"  id="left" class="a">
            <img src="img/new_r.png" id="right" class="a">
    
            <!-- 移动到某张图片上的小圆点 -->
            <div id="xyd">
                <a href="#" class="a_b"></a>
                <a href="#" class="a_a"></a>
                <a href="#" class="a_a"></a>
                <a href="#" class="a_a"></a>
                <a href="#" class="a_a"></a>
            </div>
        	</div>	

    css代码如下:

    *{
    	padding:0px;
    	margin: 0px;
    }
    #box{
    	width: 730px;
    	overflow: hidden;/*隐藏超出部分*/
    	position: relative;/*相对布局,让孩子container更容易控制*/
    	height: 336px;
    	margin:0 auto;
    }
    
    #container{
    	position: absolute;/*绝对布局*/
    	width: 3650px;
    	height: 336px;
    }
    #container div{
    	float: left;/*装载图片的盒子向左浮动,在container内为一横排*/
    	width: 730px;
    
    }
    
    /*下面不是很重要,可随便调整*/
    .a{
    	position: absolute;
    	 cursor:pointer;
    }
    #left{
    	top: 150px;
    	left: 5px;	
    }
    #right{
    	top: 150px;
    	right: 5px;	
    }
    #xyd{
    	top: 280px;
    	left: 350px;
    	position: absolute;
    }
    .a_a{
    	display: inline-block;
    	margin: 5px;
        width: 5px;
        height: 5px;
        border-radius: 20px;
        border:1px solid #8E8E8E;
        background:#ADADAD;
    }
    .a_b{
    	display: inline-block;
    	margin: 5px;
        width: 10px;
        height: 10px;
        border-radius: 20px;
        border:1px solid #FFFFFF;
        background:#FFFFFF;
    }

    js代码如下:

    首先一个move(控制container的移动,n为移动到第几张图片),c为container,xydArr为底部小圆点的元素集

    通过定时器window.setInterval设置定时,并用num获取当前的位置,再将改变的参数传入move(),思路大致如此,而左右和小圆点,则是要加鼠标滑动到上面的事件,鼠标离开事件,鼠标点击事件。当鼠标移动到上面时,停止轮播,离开则恢复。

    window.onload = function() {
    	 
    	// 轮播图部分
    	 var c = get("container");//获取container
    	 var num = (0-c.offsetLeft)/730;//获取当前num
    	 var t1; //设置定时器变量
    
    	 // 小圆点
    	var xyd_c = get("xyd");//获取装小圆点的盒子
    	var x = 0;//emmmm,定义当前清除的定时器编号
    	var xydArr = xyd_c.getElementsByTagName('*');//获取小圆点数组
    
    	
    	 function timecount(){//设置定时器
    		 	t1=window.setInterval(function(){
    		 	var left = c.offsetLeft;
    		 	num = (0-left)/730;
    		 	// console.log(num);
    		 	n = (num+1)%5
    		 	move(n,c,xydArr);
    		 	// c.style.left = (0-n)*730+"px";
    		 	// console.log(c.offs	etLeft);
    		 	// timecount();
    		 },1000);
    	}
    	timecount();//运动定时器
    
    
    	var divArr = c.getElementsByTagName('*');//获取装载图片的数组
    	// 小圆点的三个事件
    	for (var i = 0; i < xydArr.length; i++) {
    		(function(i) {
    			xydArr[i].onmouseover = function(){
    				x = delet_time(x,t1); 
    				move(i,c,xydArr);
    				// this.className="a_b";
    	    	}
    	    	divArr[i].onmouseover = function(){
    				x = delet_time(x,t1);
    				// this.className="a_b";
    	    	}
    	    	xydArr[i].onmouseout = function(){
    	    		x = delet_time(x,t1);
    	    		timecount();
    			 	// console.log(1);
    			 	// console.log(1);
    				// this.className="a_b";
    	    	}
    	    	divArr[i].onmouseout = function(){
    	    		x = delet_time(x,t1);
    				timecount();
    				// this.className="a_b";
    	    	}
    	    	xydArr[i].onclick = function(){
    				x = delet_time(x,t1);
    				move(i,c,xydArr);
    				// this.className="a_b";
    	    	}
    	    	
    		})(i);
    	}
    
    
    
    	// 前一页,后一页
    	var left = get("left");
    	var right = get("right");
    	//向左向右滑动按钮的事件
    	left.onmouseover = function(){
    		x = delet_time(x,t1);
    	}
    	left.οnmοuseοut=function(){
    		x = delet_time(x,t1);
    		window.setTimeout(function(){
    		 	timecount();
    		 	// console.log(1);
    		 },2000);
    	}
    	left.οnclick=function(){
    		x = delet_time(x,t1);
    		var left = c.offsetLeft;
    		num = (0-left)/730;
    		// console.log(num);
    		if (num==0) {
    			n = 4;
    		}
    		else{
    			n = (num-1)%5
    		}
    		
    		// console.log(n);
    		move(n,c,xydArr);
    	}
    
    	right.onmouseover = function(){
    		x = delet_time(x,t1);
    	}
    	right.οnmοuseοut=function(){
    		x = delet_time(x,t1);
    		window.setTimeout(function(){
    		 	timecount();
    		 	// console.log(1);
    		 },2000);
    	}
    	right.οnclick=function(){
    		x = delet_time(x,t1);
    		var left = c.offsetLeft;
    		num = (0-left)/730;
    		// console.log(num);
    		n = (num+1)%5
    
    		// console.log(n);
    		move(n,c,xydArr);
    	}
    
    
    }
    
    function get(Element){
    	return document.getElementById(Element);
    }
    
    function move(n,c,xydArr) { //移动到第n张图片上
    	for (var i = 0; i < xydArr.length; i++) {
    		if (i==n) {
    			xydArr[i].className="a_b";
    		}
    		else{
    			xydArr[i].className="a_a";
    		}
    	};
    	 c.style.left = (0-n)*730+"px";
    }
    
    function delet_time(x,t){ //清楚t的定时器
    	var i = x+1;
    	// console.log(x);
    	// console.log(t);
    	for (i = x+1; i <= t; i++) {
    		// console.log("a:"+i);
    		clearInterval(i);
    		// console.log("b:"+i);
    	};
    	return --i;
    		// delet_time(t);
    }
    
    

    
    

    由于是按照自己的思路打的js,没有经过整理,所以很凌乱。

    问题:定时器清除不干净,导致一开始的时候由于定时器的标签编号过快,而使得有些定时器未清除,使得图片轮播越来越快。

    定时器的性质:

    var t1;//定时器的变量
    function timecount(){//设置定时器
    		 	t1=window.setInterval(function(){//第一次设置定时器,t1的编号为1,即t1=1
    		 	var left = c.offsetLeft;
    		 	num = (0-left)/730;
    		 	// console.log(num);
    		 	n = (num+1)%5
    		 	move(n,c,xydArr);
    		 	// c.style.left = (0-n)*730+"px";
    		 	// console.log(c.offs	etLeft);
    		 	// timecount();
    		 },1000);
    	}
    	timecount();//t1=1
    	timecount();//t1=2
    	clearInterval(t1)//只能清除编号为2的定时器,而t1=1的残留
    	clearInterval(1)//清除编号为1的定时器
    

    所以常常会导致有一部分被跳过的定时器残留(暂时找不到原因),采用了暴力破除法,就是上面的delet_time方法,通过x记录当前已清除的定时器的最大编号,然后在下次需要清除时,清除编号[x+1,t]的定时器。

    ps:window.onload 是页面加载完加载JavaScript。

    总而言之,虽然代码有点乱,但最大的问题还是在定时器上。暴力破除虽然挺有效的,但总感觉不太对。


    展开全文
  • web网页轮播图/js控制轮播

    千次阅读 2018-07-27 08:57:42
    以下是完整网页轮播图完整代码,喜欢的码农可以赋值进行调试使用: <!DOCTYPE html> < html >   < head >   < meta charset = "UTF-8" >   < title > title >   < style ...
  • 使用axure 8.0制作web 网页门户网站中的轮播图demo。学习资源仅供参考。本文件只是一个单纯的demo样式
  • 轮播效果大致可以分为3个部分:轮播图片(图片或者是包含容器),控制轮播图显示的按钮(向左、向右按钮,索引按钮(例如上面效果图的顶部的数字按钮)),每隔一段时间轮流显示轮播图片。 轮播图的显示:要显示的轮播...
  • 相信大家应该都知道,移动端的轮播图是我们比较常见的需求, 我们最快的实现方式往往是 使用第三方的代码, 例如 swiper , 但当遇到一些比较复杂的轮播图需求时, 往往是束手无策,不知道怎么改.  所以我们要尝试去...
  • 移动端web轮播图,包括触摸左右滑动切换效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=...
  • < div class = " wrap scrollleft " style =" height : 475px ; " > < ul > < li > < img id = " msgSpan " src = " views/images1/lunbosan.png ..."文字轮播" ) < / script >
  • Web前端_轮播图的实现

    2021-09-07 10:29:20
    <!... <... <...轮播图1</title> <style type="text/css"> ul{ list-style: none; } .imgs{ width:590px; height:470px; overflow: hidden; } .dots{ width
  • WEB前端开发:轮播图的实现(H5+C3+JavaScript)(JQuery)

    万次阅读 多人点赞 2017-11-11 20:01:50
    一、轮播图的概念 轮播图就是一种网站在介绍自己的主打产品或重要信息的传播方式。说的简单点就是将承载着重要信息的几张图片,在网页的某一部位进行轮流的呈现,从而做到让浏览者很快的了解到网站想要表达的主要...
  • 轮播视频,左右轮播播放
  • Web前端开发-轮播

    2020-05-17 03:41:54
    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Surface Book 3</title> <style type="text/css"> #div-surface img { ... wi...
  • 关于幻灯轮播图,想必大家都不陌生,尤其是基于 jQuery 的,插件、代码网上一搜一大堆,但是真正符合自己需求的几乎没有,所以我要打造一个符合自身需求,经得起广大网民考验的 jQuery 轮播图! 思路 为什么说网上...
  • 轮播图就是网页到达一定时间就切换图片。要用到定时器功能,直接改变img的src 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>轮播图</title&...
  • Vue中实现数据列表无缝轮播

    千次阅读 2020-08-20 10:17:59
    实现效果: 链接 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>vue.js动态文字滚动公告代码</title> <script src=...st
  • web轮播

    2020-05-09 19:15:11
    文章目录 原生JS编写 jQuery编写 移动web轮播图(可触屏拖动) 原生JS编写 function getStyle(obj,name){ if(window.getComputedStyle){ return getComputedStyle(obj,null)[name]; }else{ return obj....
  • 简单实现css轮播

    2018-07-26 15:18:16
    html页面图片实现简单轮播图效果,下载可直接使用,下载可直接使用,下载可直接使用
  • 老徐利用空闲时间,制作了一个最简单的轮播图,主要介绍轮播图的原理和制作过程,只要大家能认真看完这篇文章,并理解文中内容,就能完全掌握轮播图的制作了。之后工作中碰到复杂的轮播图,自己也能思考制作出来了。...
  • Java Web-----轮播图的实现

    千次阅读 2019-11-06 19:17:14
    轮播图的实现可以用多种方法,只用CSS可以实现,用Javascript也可以实现。 不过实现出来的效果也是多种多样的。 这篇是用Javascript对轮播图的实现 轮播图的实现 图片板块 a. 首先,开辟一轮播图存放的板块,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,437
精华内容 6,574
关键字:

web轮播列表