精华内容
下载资源
问答
  • 轮播图html代码
    2021-08-04 08:26:52

    就是给这几个图片弄一个定时器,把图片先定位到一个地方,给定时器一个时间,比如五秒,最初让除了第一个图片外的其他的都消失。前五秒显示的是第一张图片,五秒.

    请直接复制我的以下代码修改!我好复制直接使用,本人菜鸟!记住样式! 。

    var t; var btn=$(".lst"); var img=$("img"),index=0,len=btn.length; function showimg(index){ img.hide().eq(index).fadeIn(); btn.removeClass("active").eq(index)..

    用定时器来做

    所以打算让div轮播。div都是一样的格式。class也都一样!!!js怎么写

    你的意思是觉得那个图片轮播的js代码直接放里面代码太乱了?如果是这样的话那就那个那个轮播的js放到一个js文件,然后引用这个文件 评论0 0 0

    把5张图片(取名01到05)做好,放入images里,在body里插入 <div > <script type="text/javascript" src="js/flash.js"></script> </div>flash.js如下:var.

    PS:轮播内容是某个div里面的内容哦 不是img , 只有两个div的相互轮播 应。

    如下代码可以实现,不过你首先需要引用Jquery,我使用的是jquery-1.7.1.min.js 支持两个div或多个div的淡入淡出切换:

    我在网上看了很多源代码,都看不懂。我想问下图片轮播需要哪些代码,不要.

    图片轮播效果是js那个出的,但在页面显示仍是div+css,所以,你需要确认自己的页面是宽屏还是窄屏(即width:980px;||width:1024px;等),这样在图片轮播上加一个大.

    怎么修改?源代码只是实现手动滚动。如何实现页面打开后自动滚动

    能手动滚动了,又是用的Jquery,只需要触发点击事件就OK了啊 setTimeout(function(){ $(".next").trigger("click"); },5000);

    像这样的只要底下一排的那种HTML怎么写,就一排图片可以切换

    div{position:relative;width:500px;height:100px;overflow:hidden;}ul{position:absolute;top:0;left:0;overflow:hidden;}ul li{float:left;}大概是这样的

    overflow:hidden}js、window.onload = function(){ function dom(obj){ return .

    1. 隔1秒轮询执行启动函数2. img是个对象数组,,pos为索引值。执行下表为0的img隐藏3. 索引从0开始+1 if索引值== 总长度值 索引重新从0开始4. 讲索引+1后的img图片.

    过渡效果是滑动不是渐变的

    你好,这种效果我自己写过,我说下自己的方法做一个div,宽高固定,overflow设为. 否则,图片会换行然后,在js写一个定时器,setInterval,不停地修改ul的margin-left,.

    JS都没用~

    我已经做好了HTML页面如下: 无标题文档 #tab { overflow:hidden; width:。

    h5代码:

    • 10
    • 9
    • 8
    • 7
    • 6. 扩展资料:轮播图是网站介绍其主要产品或重要信息的一种方式。简单的一.

      setInterval(showIMG,1000); //每1000ms执行一次showIMG函数,不明白再追问。function showIMG(){//todo 实现图片切换部分}

      试试这个图片轮播 有12345数字一起切换 鼠标点一下数字会变换到另一张图片,不点就会自动换 里面有教程和源码

      这是我从网上拷贝下来的代码,但我想替换里面的轮播图片,应该怎么改,。

      很明显它支持网络地址 你用的服务器地址肯定不行 解决办法:你将你图片上传到自己的服务器,然后用你的域名去访问图片并获得图片的地址 然后替换掉他原来的地址就.

      还有就是用原生js模仿jQuery写一个动画函数,最简单版的就是:var timer = null;function ani(ele,target) {clearInterval(ele.timer);ele.timer = setInterval(function() {var step = (.

      在网上下了个js自动适应的图片轮播代码,左右箭头可切换,但是不会自动播.

      在网页中js函数自动执行常用三种方法 在html中的head区域中,有如下函数: functionn myautorun() { //以下是您的函数的代码,请自行修改先! alert("函数自动执行.

      除了直接把放在div之外的方法。。

      试试这个焦点图切换有12345数字一起切换鼠标点一下数字会变换到另一张图片,不点就会自动换里面有教程和源码

      div自动循环轮播,你可以用setInterval来解决。

    更多相关内容
  • HTML旋转木马图片轮播代码,js图片层叠布局,3D旋转图片轮播效果,图片自动延时轮播切换,点击箭头图片轮播
  • 本文实例为大家分享了JavaScript实现轮播图片的具体代码,供大家参考,具体内容如下 JS代码注释清晰明了,一看就懂! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &...
  • HTML5全屏图片左右滑动轮播代码是一款全屏响应式图片轮播布局,按钮控制图片水平滑动预览查看,图片支持鼠标悬停文字动画展示特效。
  • html5 CSS3 仿京东淘宝轮播图片切换特效代码,jquery修正了图片地址,上次其实只是没有把jquery打包在里面,不过有些新手摸不着头绪了,反复说代码有误,这次不会了,请看效果。图片 两侧显示箭头,下边显示两加点...
  • html5手机触摸滑动图片幻灯片轮播切换代码
  • jquery html5响应式图片轮播代码_响应式网站图片切换
  • 代码html 无缝轮播图完整代码

    1,实现轮播效果

    在这里插入图片描述

    2,实现代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css">
    *{ padding:0; margin:0; list-style:none; border:0;}
    .all{
      width:500px;
      height:200px;
      padding:7px;
      border:1px solid #ccc;
      margin:100px auto;
      position:relative;
    }
    .screen{
    width:500px;
    height:200px;
    overflow:hidden; 
    position:relative;
    }
    .screen li{ width:500px; height:200px; overflow:hidden; float:left;}
    .screen ul{ position:absolute; left:0; top:0px; width:3000px;}
    .all ol{ position:absolute; right:10px; bottom:10px; line-height:20px; text-align:center;}
    .all ol li{ float:left; width:20px; height:20px; background:#fff; border:1px solid #ccc; margin-left:10px; cursor:pointer;}
    .all ol li.current{ background:yellow;}
     
     
    /*#arr {display: none;}*/
    #arr span{ width:40px; height:40px; position:absolute; left:5px; top:50%; margin-top:-20px; background:#000; cursor:pointer; line-height:40px; text-align:center; font-weight:bold; font-family:'黑体'; font-size:30px; color:#fff; opacity:0.3; border:1px solid #fff;}
    #arr #right{right:5px; left:auto;}
     
    </style>
     
    </head>
    <body>
    <div class="all" id='all'>
    <div class="screen" id="screen">
            <ul id="ul">
                <li><img src="images/1.jpg" width="500" height="200" /></li>
                <li><img src="images/2.jpg" width="500" height="200" /></li>
                <li><img src="images/3.jpg" width="500" height="200" /></li>
                <li><img src="images/4.jpg" width="500" height="200" /></li>
                <li><img src="images/5.jpg" width="500" height="200" /></li>
            </ul>
            <ol></ol>
            <div id="arr"><span id="left"><</span><span id="right">></span></div>
        </div>
    </div>
    </body>
    </html>
    <script>
        //需求:无缝轮播图
        //步骤:
        //1.老三步。获取相关元素。
        //2.补齐相互盒子
            //1.复制第一张图片所在的li,填入所在的ul中。
            //2.生成相关的ol中的li。
            //3.点亮第一个ol中的li。
        //3.鼠标放到小方块儿上,轮播图片。
        //4.添加定时器。
        //5.左右切换的按钮。
     
        //1.老三步。获取相关元素。
        var box = document.getElementById("all");
        var ul = box.children[0].children[0];
        var ol = box.children[0].children[1];
        var ulLiArr = ul.children;
        //2.补齐相互盒子
            //1.复制第一张图片所在的li,填入所在的ul中。
        var newLi = ulLiArr[0].cloneNode(true);
        ul.appendChild(newLi);
            //2.生成相关的ol中的li。
        for(var i=0;i<ulLiArr.length-1;i++){
            var newOlLi = document.createElement("li");
            newOlLi.innerHTML = i+1;
            ol.appendChild(newOlLi);
        }
            //3.点亮第一个ol中的li。
        var olLiArr = ol.children;
        ol.children[0].className = "current";
        //3.鼠标放到小方块儿上,轮播图片。
        for(var i=0;i<olLiArr.length;i++){
            olLiArr[i].index = i;
            olLiArr[i].onmouseover = function () {
                for(var j=0;j<olLiArr.length;j++){
                    olLiArr[j].className = "";
                }
                olLiArr[this.index].className = "current";
                animate(ul,-this.index*ul.children[0].offsetWidth);
                key = square = this.index;
            }
        }
        //4.添加定时器。
        var timer = null;
        var key = 0;
        var square = 0;
        timer = setInterval(autoPlay,1000);
     
     
        function autoPlay(){
            key++;
            square++;
            if(key>olLiArr.length){
                key=1;
                ul.style.left = 0;
            }
            animate(ul,-key*ul.children[0].offsetWidth);
     
     
            square = square>olLiArr.length-1?0:square;
            for(var j=0;j<olLiArr.length;j++){
                olLiArr[j].className = "";
            }
            olLiArr[square].className = "current";
        }
        //5.鼠标移开开启定时器,鼠标放上去开启定时器。
        box.onmouseover = function () {
            clearInterval(timer);
        }
        box.onmouseout = function () {
            timer = setInterval(autoPlay,1000);
        }
        //6.左右切换的按钮。
        var btnArr = box.children[0].children[2].children;
        btnArr[0].onclick = function () {
            key--;
            square--;
            if(key<0){
                key=4;
                ul.style.left = -5*ul.children[0].offsetWidth + "px";
            }
            animate(ul,-key*ul.children[0].offsetWidth);
     
     
            square = square<0?olLiArr.length-1:square;
            for(var j=0;j<olLiArr.length;j++){
                olLiArr[j].className = "";
            }
            olLiArr[square].className = "current";
        }
        btnArr[1].onclick = function () {
            autoPlay();
        }
     
        //  基本封装
        function animate(obj,target) {
            clearInterval(obj.timer);
            var speed = obj.offsetLeft < target ? 15 : -15;
            obj.timer = setInterval(function() {
                var result = target - obj.offsetLeft;
                obj.style.left = obj.offsetLeft + speed  + "px";
                if(Math.abs(result) <= 15) {
                    obj.style.left = target + "px";
                    clearInterval(obj.timer);
                }
            },10);
        }
    
    </script>
    
    展开全文
  • HTML5轮播图代码

    万次阅读 多人点赞 2018-11-21 21:33:40
    轮播图原理大概是这样的,假定三张图片需要做轮播效果,首先需要将这三张图片并列放置,然后将这个整体并列向左移动,每当一张图片完整的从显示框走出,则将这张图片放置到最后面,循环往复就可以实现图片向左(或一...

    轮播图原理大概是这样的,假定三张图片需要做轮播效果,首先需要将这三张图片并列放置,然后将这个整体并列向左移动,每当一张图片完整的从显示框走出,则将这张图片放置到最后面,循环往复就可以实现图片向左(或一个方向)移动。然后,需要有两个定时器,一个定时器A控制三张图片整体左移速度,另一个定时器B控制每当一张完整的图片走进这个显示框就等待一到两秒得到更好的用户体验。
    我这里用三个div框当作轮播图来演示。
    在html的body中添加一个div作为显示框,然后在这个div内部添加三个子div作为图片显示。代码如下:

    <div id="box">
    	<div id="red" class="slide"></div>
    	<div id="green" class="slide"></div>
    	<div id="blue" class="slide"></div>
    </div>
    

    头部添加css样式:

    此时网页中应该是有一个黑色显示框div,内部有红、绿、蓝三个div框,三个框从上到下排列。
    第一步,需要将三张图片都并列显示。
    要实现将div挪动,且div比较方便控制每时每刻的位置(移动),只能使用相对定位,且为方便,三个子div位置移动应该是相对box,所以box应该作为相对的参照点。分别为box和slide代码添加position属性:

    #box{
    	width:100px;
    	height:100px;
    	border:1px solid black;
    	position:relative;
    }
    .slide{
    	width:100px;
    	height:100px;
    	position:absolute;
    }
    

    为整个页面添加onload加载完成事件,当浏览器打开并加载完并自动执行事件中的代码块。这部分js代码写在刚才css下面即可,保持同级结构。

      <script type="text/javascript">
    onload=function(){
    	var arr = document.getElementsByClassName("slide");
    	for(var i=0;i<arr.length;i++){
    		arr[i].style.left = i*100+"px";
    	}
    }
    </script>
    

    当页面加载完全,三个div应该并列在一起。
    接下来,需要实现将这三个div整体向左移动,使用定时器,即前面的定时器A。*onload同级下面添加如下代码:

    function LeftMove(){
    		var arr = document.getElementsByClassName("slide");//获取三个子div
    		for(var i=0;i<arr.length;i++){
    			var left = parseFloat(arr[i].style.left);
    			left-=2;
    			var width = 100;//图片的宽度
    			if(left<=-width){
    				left=(arr.length-1)*width;//当图片完全走出显示框,拼接到末尾
    			}
    			arr[i].style.left = left+"px";
    		}
    		}
    	moveId=setInterval(LeftMove,10);//设置一个10毫秒定时器,并给自己取名
    **此时,三个div已经能够缓慢向左移动。现在需要再开启一个定时器B,并将A定时器装入到B定时器中,A的定时器时间间隔应该长于一个div完全走进显示框的时间,我这里设置为3秒。然后,将A定时器装入到方法divInterval中,B定时器调用这个方法。且为了用户体验效果更好,当一个div完全走入显示框后,应该等待一段时间,再开是移动。所以在LeftMove方法中,*if判断中还需关闭moveId这个定时器*,停止此时移动的div定时器。当3秒不到的时间后,定时器B又会开启一个新的定时器A。**
    	if处添加一句代码为:
    		
    
    if(left<=-width){
    				left=(arr.length-1)*width;//当图片完全走出显示框,拼接到末尾
    				clearInterval(moveId);
    			}
    		
    		function divInterval(){
    		moveId=setInterval(LeftMove,10);//设置一个10毫秒定时器
    		}
    		timeId=setInterval(divInterval,3000);//设置一个3秒的定时器。
    

    到这里,轮播图基本已经实现了。然后,还需要在css样式中为box添加overflow,将超出显示框的div隐藏。

      	#box{
    width:100px;
    height:100px;
    border:1px solid black;
    position:relative;
    overflow:hidden;
    

    }

    然后为了解决当鼠标悬停在轮播图,轮播图停止轮播效果,需要在box上添加鼠标移入和移出事件。开始标签:

    <div id="box" onmouseover="stop()" onmouseout="start()">
    

    添加js代码:

    function stop(){
    	clearInterval(timeId);//鼠标停留关闭B定时器
    }
    function start(){
    	clearInterval(timeId);//重新打开一个定时前,先关闭之前定时器。
    	timeId=setInterval(divInterval,2000);//重启一个定时器
    }
    

    当浏览器窗口切出或页面切换到其他页面一段时间再回来时,轮播效果会有短暂加速(随切出时间加长而加长)。主要是因为虽然窗口切出去了,定时器依然在执行,但页面却没有将效果显示,所以切回来后会将之前的效果显示出来而加速轮播图。所以添加页面焦点事件:

    //页面失去焦点定时器停止
    onblur = function(){
    	stop();
    }
    //页面获取焦点时重启定时器
    onfocus = function(){
    	start();
    }
    

    全部代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>轮播图</title>
    <style type="text/css">
    	#box{
    		width:100px;
    		height:100px;
    		border:1px solid black;
    		position:relative;
    		overflow:hidden;
    	}
    	#red{
    		background-color:red;
    		width:100px;
    	}
    	#green{
    		background-color:green;
    		width:100px;
    	}
    	#blue{
    		background-color:blue;
    		width:100px;
    	}
    	.slide{
    		width:100px;
    		height:100px;
    		position:absolute;
    	}
    </style>
    <script type="text/javascript">
    	onload=function(){
    		var arr = document.getElementsByClassName("slide");
    		for(var i=0;i<arr.length;i++){
    			arr[i].style.left = i*100+"px";
    		}
    	}
    	function LeftMove(){
    		var arr = document.getElementsByClassName("slide");//获取三个子div
    		for(var i=0;i<arr.length;i++){
    			var left = parseFloat(arr[i].style.left);
    			left-=2;
    			var width = 100;//图片的宽度
    			if(left<=-width){
    				left=(arr.length-1)*width;//当图片完全走出显示框,拼接到末尾
    				clearInterval(moveId);
    			}
    			arr[i].style.left = left+"px";
    		}
    	}
    	function divInterval(){
    		moveId=setInterval(LeftMove,10);//设置一个10毫秒定时器
    	}
    	
    	
    	timeId=setInterval(divInterval,2000);//设置一个3秒的定时器。
    	
    	function stop(){
    		clearInterval(timeId);
    	}
    	function start(){
    		clearInterval(timeId);
    		timeId=setInterval(divInterval,2000);
    	}
    	
    	//页面失去焦点停止
    	onblur = function(){
    		stop();
    	}
    	//页面获取焦点时开始
    	onfocus = function(){
    		start();
    	}
    </script>
    </head>
    <body>
    	<div id="box" onmouseover="stop()" onmouseout="start()">
    		<div id="red" class="slide"></div>
    		<div id="green" class="slide"></div>
    		<div id="blue" class="slide"></div>
    	</div>
    </body>
    </html>
    
    展开全文
  • 特效简介: HTML5响应式多种切换效果轮播图切换js特效代码
  • HTML5圆形图片横向轮播切换代码,响应式设计,自适应分辨率,图片放大缩
  • html5 轮播图

    2016-03-16 10:02:44
    html5 轮播 完美适配 给终端
  • HTML旋转木马图片轮播代码.zip
  • 图片弧形展示轮播切换js代码是一款带左右箭头按钮的网站焦点特效代码
  • HTML5图片倾斜轮播切换3D特效是一款图片倾斜布局支持滑块拖到3D旋转切换代码
  • 原生js实现轮播图的示例代码

    千次阅读 2021-06-09 05:24:55
    很多网站上都有轮播图,但却很难找到一个系统讲解的,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些...步骤一:建立html基本布局如下所示:轮播图 12345<>只有五张图片,却使用7张来轮播,这是...

    很多网站上都有轮播图,但却很难找到一个系统讲解的,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出。

    原理:

    将一些图片在一行中平铺,然后计算偏移量再利用定时器实现定时轮播。

    步骤一:建立html基本布局

    如下所示:

    轮播图

    1

    2

    3

    4

    5

    <

    >

    只有五张图片,却使用7张来轮播,这是为了实现无缝轮播,后面会详细介绍。

    而5个span,即我们可以实时看到轮播图目前所处的位置。

    最后是两个按钮,可以通过它来控制前进与后退。

    这里我们需要对wrap使用绝对定位,所以用left:-600px;将第一张图片显示出来。

    步骤二: css布局

    首先,resetcss,如下所示:

    * {

    margin:0;

    padding:0;

    }

    a{

    text-decoration: none;

    }

    接着,我们为了让图片只在container中,所以需要限定其宽度和高度并且使用overflow:hidden;将其余的图片隐藏起来,并且我们希望wrap相对于container左右移动,所以设置为relative,如下:

    .container {

    position: relative;

    width: 600px;

    height: 400px;

    margin:100px auto 0 auto;

    box-shadow: 0 0 5px green;

    overflow: hidden;

    }

    我们设置wrap是绝对定位的,所以,我们就可以通过控制Left和Right来控制图片的移动了。设置z-index:1;以对后面将要放置的buttons作为参考。 因为共有七张图片,所以width为4200px(每张图片我们设置为600X400),我们只需让图片左浮动即可实现占满一排了。

    .wrap {

    position: absolute;

    width: 4200px;

    height: 400px;

    z-index: 1;

    }

    然后我们把图片设置位左浮动,并限定其大小,如下所示:

    .container .wrap img {

    float: left;

    width: 600px;

    height: 400px;

    }

    现在的效果如下:

    1439cdbddd2ddeece21bd882ebc767ba.png

    即这时已经显示出了第一张图片。并且充满了整个container(container是有box-shadow的);

    然后我们把显示次序的buttons放在图片的右下角。并且设置z-index:2;以保证buttons是在图片的上面的。

    .container .buttons {

    position: absolute;

    right: 150px;

    bottom:20px;

    width: 100px;

    height: 10px;

    z-index: 2;

    }

    然后将buttons下面的span做一个简单的修饰,并且给和图片对应的span设置一个on类,如下:

    .container .buttons span {

    margin-left: 5px;

    display: inline-block;

    width: 20px;

    height: 20px;

    border-radius: 50%;

    background-color: green;

    text-align: center;

    color:white;

    cursor: pointer;

    }

    .container .buttons span.on{

    background-color: red;

    }

    接下来,我们把左右切换的箭头加上,然后做简单的修饰,注意:因为这里使用实体来表示左右箭头,所以设置font-size才能改变其大小,

    .container .arrow {

    position: absolute;

    top: 35%;

    color: green;

    padding:0px 14px;

    border-radius: 50%;

    font-size: 50px;

    z-index: 2;

    display: none;

    }

    .container .arrow_left {

    left: 10px;

    }

    .container .arrow_right {

    right: 10px;

    }

    .container:hover .arrow {

    display: block;

    }

    .container .arrow:hover {

    background-color: rgba(0,0,0,0.2);

    }

    步骤三:添加js逻辑

    我们首先获取到 wrap(因为要设置其left才能控制轮播图),然后获取到左右两个箭头,并实现手动轮播,如下:

    var wrap = document.querySelector(".wrap");

    var next = document.querySelector(".arrow_right");

    var prev = document.querySelector(".arrow_left");

    next.onclick = function () {

    next_pic();

    }

    prev.onclick = function () {

    prev_pic();

    }

    function next_pic () {

    var newLeft = parseInt(wrap.style.left)-600;

    wrap.style.left = newLeft + "px";

    }

    function prev_pic () {

    var newLeft = parseInt(wrap.style.left)+600;

    wrap.style.left = newLeft + "px";

    }

    值得注意的是,这里wrap.style.left是一个字符串,所以要转化为数字才能进行计算,而设定left时就要加上px成为一个字符串了。

    现在我们来测试一下:

    a8d398a3868a8d3be942961eb5efb7c4.gif

    可以看到,在第一页时,left值为-600,所以我们可以点击一次上一张,但是当再点击一次时,就出现了空白。同样的,下一张点击,到-3600是最后一张,就不能再继续点击了。

    也就是说,当我们点击下一张到-3600px(这是第一张图片)时,我们需要下次跳转到第二张,即-1200px;这样才能正常跳转;

    同理,当我们点击上一张到0px(这是第五张图片时),我们希望下次跳转到第四张,即-2400px;

    按照这样的思路我们重新将next_pic和prev_pic函数修改如下:

    function next_pic () {

    var newLeft;

    if(wrap.style.left === "-3600px"){

    newLeft = -1200;

    }else{

    newLeft = parseInt(wrap.style.left)-600;

    }

    wrap.style.left = newLeft + "px";

    }

    function prev_pic () {

    var newLeft;

    if(wrap.style.left === "0px"){

    newLeft = -2400;

    }else{

    newLeft = parseInt(wrap.style.left)+600;

    }

    wrap.style.left = newLeft + "px";

    }

    这时,我们就可以发现图片可以循环播放了!

    但是,这时我们仅仅时手动循环播放的,我们如果希望自动播放,使用setInterval()即可,如下所示:

    var timer = null;

    function autoPlay () {

    timer = setInterval(function () {

    next_pic();

    },1000);

    }

    autoPlay();

    即先设定一个计时器,然后创建一个可以自动播放的函数,最后调用这个函数即可。 现在它就可以自动播放了,效果如下:

    b3751ba79566fe1132b20214a9b834cf.gif

    但是如果我们想要仔细看其中一个图片的时候,我们希望轮播图停止播放,只要clearInterval()即可,如下:

    var container = document.querySelector(".container");

    container.onmouseenter = function () {

    clearInterval(timer);

    }

    container.onmouseleave = function () {

    autoPlay();

    }

    现在,只要我们把鼠标移入轮播图中,这时轮播图就不会播放了。而移开鼠标之后,轮播图自动播放。

    但是到目前为止,轮播图下方的小圆点还没有动,现在我们就实现它。

    原理很简单,即设置buttons的index初始值为0,即第一个span的class为on,然后触发next_pic函数时,index加1,当触发prev_pic函数时,inex减1, 并设置当前index的小圆点的class为on, 这就要求index必须设置为全局变量,才能保证它在每一个函数的作用域中。

    添加showCurrentDot函数:

    var index = 0;

    var dots = document.getElementsByTagName("span");

    function showCurrentDot () {

    for(var i = 0, len = dots.length; i < len; i++){

    dots[i].className = "";

    }

    dots[index].className = "on";

    }

    在next_pic中添加代码:

    index++;

    if(index > 4){

    index = 0;

    }

    在prev_pic中添加大吗:

    index--;

    if(index < 0){

    index = 4;

    }

    showCurrentDot();

    这样,轮播图就可以自动切换,并且小圆点也在随着图片的变化而变化了。

    但是,这距离我们经常看到的轮播图还有一定距离 - - - 当点击小圆点时, 就可跳转到相应图片。 实现原理即:  点击小圆点,就使wrap的Left变成相应的值。代码如下:

    for (var i = 0, len = dots.length; i < len; i++){

    (function(i){

    dots[i].onclick = function () {

    var dis = index - i;

    if(index == 4 && parseInt(wrap.style.left)!==-3000){

    dis = dis - 5;

    }

    //和使用prev和next相同,在最开始的照片5和最终的照片1在使用时会出现问题,导致符号和位数的出错,做相应地处理即可

    if(index == 0 && parseInt(wrap.style.left)!== -600){

    dis = 5 + dis;

    }

    wrap.style.left = (parseInt(wrap.style.left) + dis * 600)+"px";

    index = i;

    showCurrentDot();

    }

    })(i);

    }

    原理就是当点击到小圆点时,得到相应的i值,这个i值也就是span的index值,我们拿他和全局变量index作比较,然后重新设置wrap.style.left的值,然后把i值复制给全局变量index,最后显示当前的小原点即可。值得注意的是:这里涉及到了闭包的概念,如果直接使用for循环,则不能得到正确的结果。

    最终效果如图:

    141622f902cb7f269029de1f19f7c355.gif

    最终代码如下所示:

    轮播图

    * {

    margin:0;

    padding:0;

    }

    a{

    text-decoration: none;

    }

    .container {

    position: relative;

    width: 600px;

    height: 400px;

    margin:100px auto 0 auto;

    box-shadow: 0 0 5px green;

    overflow: hidden;

    }

    .container .wrap {

    position: absolute;

    width: 4200px;

    height: 400px;

    z-index: 1;

    }

    .container .wrap img {

    float: left;

    width: 600px;

    height: 400px;

    }

    .container .buttons {

    position: absolute;

    right: 5px;

    bottom:40px;

    width: 150px;

    height: 10px;

    z-index: 2;

    }

    .container .buttons span {

    margin-left: 5px;

    display: inline-block;

    width: 20px;

    height: 20px;

    border-radius: 50%;

    background-color: green;

    text-align: center;

    color:white;

    cursor: pointer;

    }

    .container .buttons span.on{

    background-color: red;

    }

    .container .arrow {

    position: absolute;

    top: 35%;

    color: green;

    padding:0px 14px;

    border-radius: 50%;

    font-size: 50px;

    z-index: 2;

    display: none;

    }

    .container .arrow_left {

    left: 10px;

    }

    .container .arrow_right {

    right: 10px;

    }

    .container:hover .arrow {

    display: block;

    }

    .container .arrow:hover {

    background-color: rgba(0,0,0,0.2);

    }

    1

    2

    3

    4

    5

    <

    >

    var wrap = document.querySelector(".wrap");

    var next = document.querySelector(".arrow_right");

    var prev = document.querySelector(".arrow_left");

    next.onclick = function () {

    next_pic();

    }

    prev.onclick = function () {

    prev_pic();

    }

    function next_pic () {

    index++;

    if(index > 4){

    index = 0;

    }

    showCurrentDot();

    var newLeft;

    if(wrap.style.left === "-3600px"){

    newLeft = -1200;

    }else{

    newLeft = parseInt(wrap.style.left)-600;

    }

    wrap.style.left = newLeft + "px";

    }

    function prev_pic () {

    index--;

    if(index < 0){

    index = 4;

    }

    showCurrentDot();

    var newLeft;

    if(wrap.style.left === "0px"){

    newLeft = -2400;

    }else{

    newLeft = parseInt(wrap.style.left)+600;

    }

    wrap.style.left = newLeft + "px";

    }

    var timer = null;

    function autoPlay () {

    timer = setInterval(function () {

    next_pic();

    },2000);

    }

    autoPlay();

    var container = document.querySelector(".container");

    container.onmouseenter = function () {

    clearInterval(timer);

    }

    container.onmouseleave = function () {

    autoPlay();

    }

    var index = 0;

    var dots = document.getElementsByTagName("span");

    function showCurrentDot () {

    for(var i = 0, len = dots.length; i < len; i++){

    dots[i].className = "";

    }

    dots[index].className = "on";

    }

    for (var i = 0, len = dots.length; i < len; i++){

    (function(i){

    dots[i].onclick = function () {

    var dis = index - i;

    if(index == 4 && parseInt(wrap.style.left)!==-3000){

    dis = dis - 5;

    }

    //和使用prev和next相同,在最开始的照片5和最终的照片1在使用时会出现问题,导致符号和位数的出错,做相应地处理即可

    if(index == 0 && parseInt(wrap.style.left)!== -600){

    dis = 5 + dis;

    }

    wrap.style.left = (parseInt(wrap.style.left) + dis * 600)+"px";

    index = i;

    showCurrentDot();

    }

    })(i);

    }

    总结:

    实现一个轮播图还是不难的,大体思路: 先创建一个div,限定其宽度和高度,overflow:hidden。然后创建一个装图片的div,宽度为所有图片的总宽度,并且使其浮动,这样所有的图片就处于一行中。然后为了实现无缝滚动,所以需要在首尾分别添加一张过渡图片。 先添加两个按钮, 使其可以手动轮播,然后只需要添加一个定时器使其朝一个方向自动轮播即可,因为用户有时需要查看详情,所以当鼠标进入时就clear定时器,滑出再定时播放。为了更好地用户体验,我们再下面添加了一排小圆点,用户可以清楚地知道现在所处的位置, 最后, 利用闭包使得用户可以直接通过点击小圆点切换图片。

    展开全文
  • jQuery五屏轮播图片手风琴切换代码
  • HTML轮播图完整代码 (原生Javascript)

    万次阅读 多人点赞 2020-07-28 14:43:03
    HTML轮播图完整代码 (原生Javascript) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> ...
  • HTML旋转木马图片轮播代码,js图片层叠布局,3D旋转图片轮播效果,图片自动延时轮播切换,点击箭头图片轮播
  • 除了用swipper等插件实现图片的切换之外,我们通过引入html5规范中的自定义data属性来实现图片切换。在详细介绍怎么实现切换之前,先介绍data属性的使用方法。 我们通过使用jquery的.data()方法来访问这些"data-*...
  • HTML5圆形图片横向轮播切换代码,响应式设计,自适应分辨率,图片放大缩小。
  • HTML图片轮播代码怎么写?

    千次阅读 2021-06-08 16:10:37
    贴一个超级简单的JS代码,不需要插件图片轮播代码body{max-width: 640px;margin: 0 auto;}#lunbo ul li{width:100%;list-style: none;width:640px; height:250px;background-color: #f00;text-align: center;}#lunbo...
  • html5+css3图片幻灯片切换代码是一款基于jquery+html5+css3实现37种不同切换效果的幻灯片特效。
  • 图片点击切换 <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title></title> [removed] [removed]=function(){ var btn1=document.getElementById(pre); var btn2...
  • 初学者
  • html图片轮播代码

    2021-06-12 13:35:02
    htmlheadmeta http-equiv=Content-Type content=text/html; charset=gbk /title/titlestyle!--body, ul, li, p {margin: 0;padding: 0;}ul{list-style-type:none;}body {font-family:Times New Roman, Times, serif;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 156,545
精华内容 62,618
关键字:

轮播图html代码

友情链接: graph2.rar