轮播有可能出现的问题

我们在日常生活中常常会看到各种各样的轮播,轮播运用的范围很广,所以我们要学会轮播。
而刚开始学轮播的时候大家都有可能碰到一个问题,那就是图片切换的不完整。比如我们点击按钮让第一张图片切换到第二张,但是第一张可能没切换完就停止切换了,所以我们要在代码运行之前就判断其他的代码是否正在运行。如图:
在这里插入图片描述
我们在JavaScript的开头加个判断,然后在运行代码之前再判断一下。
完整的JavaScript代码:

// JavaScript Document
var transfor=false;//记录轮播的运动状态
var index=1;
var timer=null;
window.onload=function(){var prev=document.getElementById("prev");var next=document.getElementById("next");var bottons=document.getElementById("bottons").getElementsByTagName("span");var container=document.getElementById("container");prev.onclick=function(){if(transfor==true){return;}if(index==1){index=5;}else{index--;}animate(800);showbottons();};next.onclick=function(){if(transfor==true){return;}if(index==5){index=1;}else{index++;}animate(-800);showbottons();};for(var i=0;i<bottons.length;i++){bottons[i].onclick=function(){var myindex=this.getAttribute("index");var offset=-800*(myindex-index);index=myindex;animate(offset);showbottons();};}function play(){timer=setInterval(function(){next.onclick();},2300);}function stopPlay(){clearInterval(timer);}play();container.onmousemove=stopPlay;container.onmouseout=play;
};
function animate(offset){transfor=true;var list=document.getElementById("list");var time=300;var interval=10;var speed=offset/(time/interval);var newleft=parseInt(list.style.left)+offset;
function go(){if((speed<0&&parseInt(list.style.left)>newleft)||(speed>0&&parseInt(list.style.left)<newleft)){list.style.left=parseInt(list.style.left)+speed+"px";setTimeout(go,interval);}else{list.style.left=newleft+"px";if(newleft>-800){list.style.left=-800*5+"px";}if(newleft<-4000){list.style.left=-800+"px";}transfor=false;}}go();}function showbottons(){var buttons=document.getElementById("bottons").getElementsByTagName("span");for(var i=0;i<buttons.length;i++){if(buttons[i].className==="on"){//buttons[i].className="";// 赋值break;}}buttons[index-1].className="on";
}

源代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<link rel="stylesheet" href="css/lb.css">
</head><body>
<div class="con wrap"><div class="con1"><div class="container wrap" id="container"><div class="list" id="list" style="left: -800px"><img src="./images/2.jpg" alt=""><img src="./images/1.png" alt=""><img src="./images/3.jpg" alt=""><img src="./images/4.jpg" alt=""><img src="./images/5.png" alt=""><img src="./images/2.jpg" alt=""><img src="./images/1.png" alt=""></div><div class="bottons" id="bottons"><span index="1" class="on">1</span><span index="2">2</span><span index="3">3</span><span index="4">4</span><span index="5">5</span></div><a href="javascript:void(0);" class="prev" id="prev">&lt;</a><a href="javascript:;" class="next" id="next">&#62;</a></div></div>
</div>
<script src="js/js.js"></script>
</body>
</html>

效果图:
在这里插入图片描述
在这里插入图片描述
这样子写的话图片就可以正常切换了,你学会了吗!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Intellij Idea乱码解决方案都在这里了

转载自 Intellij Idea乱码解决方案都在这里了 乱码场景 使用Intellij Idea经常遇到乱码问题&#xff0c;可以总结为以下几类乱码的场景。 1、工程代码乱码。 2、main方法运行&#xff0c;控制台乱码。 3、tomcat运行&#xff0c;控制台乱码。 解决方案 1、工程代码乱码Settings…

官网下载mysql实例数据库

https://dev.mysql.com/doc/index-other.htmlalso, you can visit https://github.com/datacharmer/test_db for employee data.

怎么实现阴影效果呢?

我们在前端的设计中常常会用到图片和文字&#xff0c;如果只是单调的图片或文字&#xff0c;不怎么好看。所以我们要给它别的效果&#xff0c;比如&#xff1a;阴影效果。要实现阴影效果&#xff0c;我们就要用到box-shadow属性&#xff0c;它是一个复合属性&#xff0c;用于整…

Java管理Cookie增删改查操作

转载自 Java管理Cookie增删改查操作 Cookie属性 了解这几个属性之后&#xff0c;就知道如何进行Cookie的操作了。 name Cookie的名称。 value Cookie的值。 maxAge Cookie的失效时间&#xff0c;有以下几种值&#xff0c;默认为-1 值说明负数浏览器关闭后cookie就失效0马上清除…

伪类的用法

在前端的设计中我们常常会用到伪类&#xff0c;伪类到底是什么呢&#xff1f;css伪类是用来添加一些选择器的特殊效果。如图&#xff1a; 其中&#xff0c;最常用的是&#xff1a;hover把鼠标放在类的上面所表现的状态&#xff0c;下面我给大家看一下。 代码&#xff1a; <…

mysql体系结构和存储引擎

转自&#xff1a; mysql技术内幕&#xff1a;innodb存储引擎&#xff08;非常棒的一本书&#xff09; 【1】mysql体系结构和存储引擎 【1.2】mysql体系结构 1&#xff09;mysql数据库实例在系统上的表现就是一个进程&#xff1b; 2&#xff09;数据库与数据库实例的区别&…

SpringCloud配置中心内容加密

转载自 SpringCloud配置中心内容加密 从配置获取的配置默认是明文的&#xff0c;有些像数据源这样的配置需要加密的话&#xff0c;需要对配置中心进行加密处理。 下面使用对称性加密来加密配置&#xff0c;需要配置一个密钥&#xff0c;当然也可以使用RSA非对称性加密&#xff…

浮动的用法

在我们html的布局中常常会用到float&#xff08;浮动&#xff09;在页面布局时&#xff0c;一般用float属性来实现多栏布局&#xff0c;导航菜单等等&#xff0c;往往是用于图像和文字。元素的水平方向浮动意味着元素只能左右移动而不能上下移动。如果你把几个浮动的元素放到一…

高性能mysql_事务及4种隔离级别

转自 高性能mysql 【1.3】事务 1&#xff09;事务定义&#xff1a;事务就是一组原子性的sql查询&#xff0c;或者说一个独立的工作单元。 即事务内的sql语句&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff1b; 2&#xff09;事务的ACID概念&#xff1a…

String、StringBuilder、StringBuffer三者执行效率

一、String、StringBuilder、StringBuffer的执行效率 StringBuilder > StringBuffer > String二、测试代码 package cn.test;public class Test {final static int COUNT 10000 * 1;public static void main(String[] args) {stringAdd(COUNT);stringConcat(COUNT);stri…

数据库死锁_死锁荔枝_解决方法

转自高性能mysql&#xff1b; 【1.3.2】死锁 1&#xff09;死锁定义&#xff1a;指两个或多个事务在同一资源上相互占用&#xff0c; 并请求锁定对方占用的资源&#xff0c;从而导致恶性循环的现象&#xff1b; 当多个事务试图以不同顺序锁定资源时&#xff0c;就可能产生死锁…

sql注入攻击和PreparedStatement有效防止sql注入攻击

【1】sql注入攻击&#xff1a; /*** SQL 注入.*/Testpublic void testSQLInjection() {String username "a OR PASSWORD ";String password " OR 11";String sql "SELECT * FROM user_tbl WHERE user_name " username " AND " …

MVC之新增

在我们使用ASP.NET MVC时&#xff0c;用得最多的一定是数据的增删查改吧。我今天就讲一下&#xff0c;到底是如何实现数据的新增的。 顺序大概是这样的&#xff0c;比如&#xff1a;有一个新增的按钮&#xff0c;我们要点击它然后弹出一个模态框&#xff0c;我们要在模态框的in…

MySQL的表数据复制

A表B表复制A表的数据code到B表 一、普通SQL UPDATE A a,B b set b.codea.code where a.nameb.name; 二、存储过程 #定义复制存储过程 drop procedure if exists copy_A_to_B; create procedure copy_A_to_B() begindeclare a_name varchar(255);declare a_code varchar(255);de…

MVC之查询

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.13我之前已经写过新增了&#xff0c;那么现在我来写一下查询。查询很多地方都会用到吧&#xff0c;比如我们要让数据在表格显示出来就要用查询来让表格数据初始化&#xf…

java反射的工具类的函数集合

import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type;/*** 反射的 Utils 函数集合* 提…

Spring Boot Server容器配置

转载自 Spring Boot Server容器配置参数配置容器 server.xx开头的是所有servlet容器通用的配置&#xff0c;server.tomcat.xx开头的是tomcat特有的参数&#xff0c;其它类似。 所有参数绑定配置类&#xff1a;org.springframework.boot.autoconfigure.web.ServerProperties 代码…

MVC之删除

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.04.17在页面的数据表格中&#xff0c;既然有新增&#xff0c;那一定也有删除吧。那MVC是怎么写删除的呢&#xff0c;就让我来讲一下吧。 删除一般有删除单条数据和删除多条数…

转】Eclipse编辑Spring配置文件xml时自动提示类class包名

转自 http://bigdragon.iteye.com/blog/2396081 第一步&#xff0c;先查看下自己的Eclipse是什么版本&#xff0c;步骤如下&#xff1a; 1.1 点击Eclipse菜单‘Help -> About Eclipse’&#xff0c;如下图&#xff1a; 1.2 点击Eclipse图标如下&#xff0c;看清楚哦&…

Spring Boot读取配置的几种方式

转载自 Spring Boot读取配置的几种方式读取application文件 在application.yml或者properties文件中添加&#xff1a; info.addressUSA info.companySpring info.degreehighValue注解读取方式import org.springframework.beans.factory.annotation.Value; import org.springfra…