html 图片循环轮播,如何在Web端实现动画切换效果一致的无限循环图片轮播?
实现无缝切换可以多加两张图,在第一张前面加上最后一张图,在最后一张图后面加上第一张图。刚好之前写过一个,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端实现动画切换效果一致的无限循环图片轮播?相关推荐
- unity实现图片轮播效果_unity 背景无限循环滚动效果
背景无限循环滚动效果如下示: 步骤如下: 导入背景图片后,设置图片的格式,如下图: 2.图片格式也可以设置是Texture格式,但是Wrap Mode 一定要是Repeat[重复发生]:然后记得App ...
- 手把手带你用viewpager实现gallary效果,外加无限循环,自动轮播
手把手带你用viewpager实现gallary效果,外加无限循环,自动轮播 效果图:图很丑,各位看官且按需更改. 主要功能: ①Gallary样式 ②无限轮播 ③自动轮播和手势操作间冲突解决 提前说 ...
- 如何在WEB端进行Excel 透视表式的多维分析
提起 Excel 一定都不陌生,尤其是里面的数据透视表,对于需要进行聚合分析的情况,根据原始数据勾勾选选就能完成,用起来是倍儿爽吧. 那么,操作起来这么省心的功能要是能移到 WEB 上,嵌入俺的应用程 ...
- 如何在web端登录企业邮箱? 163企业邮箱怎么登陆?
现在业务变多了,所以注册了VIP邮箱,发信量上可以满足要求,垃圾邮件也少了.VIP邮箱也是最为常用的商务邮箱,容量大账号稳定,而且可以注册靓号.在网上看到大家都在问邮箱注册后怎么登录?163邮箱的登录 ...
- 移动web中的幻灯片切换效果
百度或者谷歌下类似的插件有很多,原理都差不多,关键适合自己的项目,如果移动端要引入jquery这么大的插件,只能呵呵了.... 下面是工作中针对webkit内核的浏览器写的,html很简单: < ...
- 循环里发送请求java_servlets – 在Java Servlet中转发请求时的无限循环
我希望你能帮助我解决我面临的这个问题: 我使用NetBeans创建了一个简单的Web应用程序. 截至目前,这是非常基本的. > servlet接收/ verificon / * url模式的请求 ...
- html无限循环音乐,十首最好听的英文歌曲 经典动听 让你无限循环的歌曲
一首动听的歌曲能够让我们的心境得到享受,那么在现如今这么丰富多彩的音乐市场上,有哪些因为歌曲是最值得收藏的呢?今天就由小编来为大家列出十首最好听的英文歌曲,给您做个参考. 十首最好听的英文歌曲: 1. ...
- web展示爬去知乎、微博文章和图片
之前使用python3抓取的一些知乎.微博的文章和图片数据想立体化展示出来 web展示爬去知乎.微博文章和图片.论坛主要是展示爬去的数据 使用技术: Springboot Mybatis MySQL8 ...
- python无限循环条件循环_Python - 条件控制、循环语句 - 第十二天
Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...
- c语言树莓派音乐播放器,使用web端来控制我的树莓派播放音乐
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? web端控制树莓派播放音乐,PHP+NodeJS+mpg123,粗糙版.实现后还可以做个app什么的. 代码 git 用 ...
最新文章
- Linux驱动编程 step-by-step (十一)
- lua string操作
- 作业1---四则运算
- 数据结构知识点大汇总(七)
- 为效能而生,企业级敏捷研发管理工具PingCode正式发布!
- paip.连接access2003数据库python3.3以及php5对比
- 通过注册表修改键盘映射
- 独家 | 精彩!这27本书籍,每位数据科学家都应该阅读(附说明图表)
- 【OneNote】同时设置中英文字体显示(雅黑+Consolas)
- android 格式化sd咔_在Android手机上怎么对SD卡进行格式化
- Office2016 打开excel出现丢失appvisvsubsystems32.dll
- offer拿到手软的大佬,研究生三年是如何度过的?
- 一般企业应用上云架构实践
- 神舟 mini pc Android,神舟四核mini PC不仅仅是小巧
- 捷联惯导系统学习2.5(等效旋转矢量微分方程)
- 基于 Formily 的表单设计器实现原理分析 ​
- 真封神虚拟服务器,服务器端文件详细介绍即修改(三)
- 杂志林 数码世界杂志订阅
- Redis HSET 详解
- Learning Attentive Pairwise Interaction for Fine-Grained Classification论文解读
热门文章
- STM单片机基础了解--野火
- 数字图像处理实验之对数变换
- mysql 词频分析工具_hive进行词频统计
- python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c
- AIDL 方法参数的in out inout前缀作用
- 【英语语法入门】 第23讲 动词的用法
- server 2008 r2中无法启用“网络发现”
- 路由器下一跳地址怎么判断_三分钟了解路由器路由表
- IoT数据科学与传统数据科学的10个差异
- ASO关键词优化如何提升APP榜单排名,aso 关键词优化工具