实现无缝切换可以多加两张图,在第一张前面加上最后一张图,在最后一张图后面加上第一张图。刚好之前写过一个,JS原生,具体代码如下:

html

轮播图

.wrap{

width: 900px;

height: 500px;

overflow: hidden;

margin: 0 auto;

margin-top: 50px;

position: relative;

}

.list{

position: absolute;

width: 5400px;

}

img{

width: 900px;

height: 500px;

float: left;

}

a{

text-decoration: none;

position: absolute;

top:200px;

display: inline-block;

width: 85px;

line-height: 70px;

background: rgba(3,3,3,.3);

color: #fff;

font-weight: 700;

font-size: 50px;

text-align: center;

display: none;

}

.buttons{

position: absolute;

bottom: 20px;

width: 100%;

text-align: center;

}

span{

width: 15px;

height: 15px;

border-radius: 50%;

display: inline-block;

cursor: pointer;

border: 1px solid #fff;

}

span~span{

margin-left: 20px;

}

.light{

background-color: #fff;

}

<

>

js

window.onload = function () {

var index = 1;

var switching = false;

var prev = document.getElementById('prev');

var next = document.getElementById('next');

var list = document.getElementById('list');

var wrap = document.getElementById('wrap');

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

var buttons = document.getElementById('buttons');

wrap.onmouseover = function () {

prev.style.display = 'block';

next.style.display = 'block';

stop();

};

wrap.onmouseout = function () {

prev.style.display = 'none';

next.style.display = 'none';

play();

}

function lastImg() {

if (switching) {

return;

}

switchPic(900);

index--;

if (index < 1) {

index = 4;

}

else if(index > 4) {

index = 1;

}

lightDot();

}

function nextImg() {

if (switching) {

return;

}

switchPic(-900);

index++;

if (index < 1) {

index = 4;

}

else if(index > 4) {

index = 1;

}

lightDot();

}

function btn(e) {

if (switching) {

return;

}

e = window.e || e;

var target = e.target ? e.target: e.srcElement;

if (target.nodeName.toLowerCase() == 'span') {

var index1 = target.getAttribute('index');

var offset = (index - index1) * 900;

switchPic(offset);

index = index1;

lightDot();

}

};

// 切换图片的函数

function switchPic(offset) {

switching = true;

var time = 300;

var inter = 10; // 隔10ms切换一次

var speed = Math.ceil(offset/(time/inter));

var left = parseInt(list.style.left) + offset;

var go = function () {

var curLeft = parseInt(list.style.left);

if ((speed > 0 && curLeft < left) || (speed < 0 && curLeft > left)) {

list.style.left = curLeft + speed + 'px';

setTimeout(go, inter);

}

else {

list.style.left = left + 'px';

if (left < -3600) {

list.style.left = -900 + 'px';

}

else if (left > -900) {

list.style.left = -3600 + 'px';

}

switching = false;

}

};

go();

}

// 点亮小点

function lightDot() {

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

if (dots[i].className == 'light') {

dots[i].className = '';

break;

}

}

dots[index-1].className = 'light';

}

// 自动轮播

var timer;

var order;

var interval;

var play = function () {

var interval1 = interval || 2000;

if (order == 'prev') {

timer = setInterval(lastImg, interval1);

}

else {

timer = setInterval(nextImg, interval1);

}

};

var stop = function () {

clearInterval(timer);

};

// 事件绑定DOM2

function addEvent(element, event, listener) {

if (element.addEventListener) {

element.addEventListener(event, listener, false);

}

else {

element.attachEvent('on'+event, listener);

}

}

// 点击左右键切图

addEvent(prev, 'click', lastImg);

addEvent(next, 'click', nextImg);

// 点击小点切图

addEvent(buttons, 'click', btn);

// 指定切换顺序和间隔时间

order = 'next';

interval = 2000;

play();

};

可以建个img文件夹,放几张图片试一下效果,这个是4张图片

html 图片循环轮播,如何在Web端实现动画切换效果一致的无限循环图片轮播?相关推荐

  1. unity实现图片轮播效果_unity 背景无限循环滚动效果

    背景无限循环滚动效果如下示: 步骤如下: 导入背景图片后,设置图片的格式,如下图: 2.图片格式也可以设置是Texture格式,但是Wrap Mode 一定要是Repeat[重复发生]:然后记得App ...

  2. 手把手带你用viewpager实现gallary效果,外加无限循环,自动轮播

    手把手带你用viewpager实现gallary效果,外加无限循环,自动轮播 效果图:图很丑,各位看官且按需更改. 主要功能: ①Gallary样式 ②无限轮播 ③自动轮播和手势操作间冲突解决 提前说 ...

  3. 如何在WEB端进行Excel 透视表式的多维分析

    提起 Excel 一定都不陌生,尤其是里面的数据透视表,对于需要进行聚合分析的情况,根据原始数据勾勾选选就能完成,用起来是倍儿爽吧. 那么,操作起来这么省心的功能要是能移到 WEB 上,嵌入俺的应用程 ...

  4. 如何在web端登录企业邮箱? 163企业邮箱怎么登陆?

    现在业务变多了,所以注册了VIP邮箱,发信量上可以满足要求,垃圾邮件也少了.VIP邮箱也是最为常用的商务邮箱,容量大账号稳定,而且可以注册靓号.在网上看到大家都在问邮箱注册后怎么登录?163邮箱的登录 ...

  5. 移动web中的幻灯片切换效果

    百度或者谷歌下类似的插件有很多,原理都差不多,关键适合自己的项目,如果移动端要引入jquery这么大的插件,只能呵呵了.... 下面是工作中针对webkit内核的浏览器写的,html很简单: < ...

  6. 循环里发送请求java_servlets – 在Java Servlet中转发请求时的无限循环

    我希望你能帮助我解决我面临的这个问题: 我使用NetBeans创建了一个简单的Web应用程序. 截至目前,这是非常基本的. > servlet接收/ verificon / * url模式的请求 ...

  7. html无限循环音乐,十首最好听的英文歌曲 经典动听 让你无限循环的歌曲

    一首动听的歌曲能够让我们的心境得到享受,那么在现如今这么丰富多彩的音乐市场上,有哪些因为歌曲是最值得收藏的呢?今天就由小编来为大家列出十首最好听的英文歌曲,给您做个参考. 十首最好听的英文歌曲: 1. ...

  8. web展示爬去知乎、微博文章和图片

    之前使用python3抓取的一些知乎.微博的文章和图片数据想立体化展示出来 web展示爬去知乎.微博文章和图片.论坛主要是展示爬去的数据 使用技术: Springboot Mybatis MySQL8 ...

  9. python无限循环条件循环_Python - 条件控制、循环语句 - 第十二天

    Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...

  10. c语言树莓派音乐播放器,使用web端来控制我的树莓派播放音乐

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? web端控制树莓派播放音乐,PHP+NodeJS+mpg123,粗糙版.实现后还可以做个app什么的. 代码 git 用 ...

最新文章

  1. Linux驱动编程 step-by-step (十一)
  2. lua string操作
  3. 作业1---四则运算
  4. 数据结构知识点大汇总(七)
  5. 为效能而生,企业级敏捷研发管理工具PingCode正式发布!
  6. paip.连接access2003数据库python3.3以及php5对比
  7. 通过注册表修改键盘映射
  8. 独家 | 精彩!这27本书籍,每位数据科学家都应该阅读(附说明图表)
  9. 【OneNote】同时设置中英文字体显示(雅黑+Consolas)
  10. android 格式化sd咔_在Android手机上怎么对SD卡进行格式化
  11. Office2016 打开excel出现丢失appvisvsubsystems32.dll
  12. offer拿到手软的大佬,研究生三年是如何度过的?
  13. 一般企业应用上云架构实践
  14. 神舟 mini pc Android,神舟四核mini PC不仅仅是小巧
  15. 捷联惯导系统学习2.5(等效旋转矢量微分方程)
  16. 基于 Formily 的表单设计器实现原理分析 ​
  17. 真封神虚拟服务器,服务器端文件详细介绍即修改(三)
  18. 杂志林 数码世界杂志订阅
  19. Redis HSET 详解
  20. Learning Attentive Pairwise Interaction for Fine-Grained Classification论文解读

热门文章

  1. STM单片机基础了解--野火
  2. 数字图像处理实验之对数变换
  3. mysql 词频分析工具_hive进行词频统计
  4. python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c
  5. AIDL 方法参数的in out inout前缀作用
  6. 【英语语法入门】 第23讲 动词的用法
  7. server 2008 r2中无法启用“网络发现”
  8. 路由器下一跳地址怎么判断_三分钟了解路由器路由表
  9. IoT数据科学与传统数据科学的10个差异
  10. ASO关键词优化如何提升APP榜单排名,aso 关键词优化工具