原生JS实现层叠轮播图

发布时间 - 2026-01-11 01:08:16    点击率:

又是轮播?没错,换个样式玩轮播。

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>wtf</title>
</head>
<body>
 <div class="container">
 <div class="box">
 <img class="front" src="img/A.jpg" alt="PIC">
 <img class="back" src="img/B.jpg" alt="PIC">
 <img class="active" src="img/C.jpg" alt="PIC">
 <div class="btns">
 <span class="btn">&lt;</span>
 <span class="btn">&gt;</span>
 </div>
 </div>
 </div>

</body>
</html>

CSS:

 <style>
 .box {width: 1200px; height: 300px; transform-style: perserve-3d; margin: 50px auto; position: relative;}
 .box img{width:600px; position: absolute; top: 60px; transition:all .3s linear;}
 
 .box:hover .btn{opacity: 1;}

 .front {left: 0px;}
 .back {left: 600px;} 
 .active {left: 300px; transform: scale(1.5); z-index: 10;}
 
 .btns .btn {width: 60px; height: 60px; display: block; position: absolute; background-color: rgba(0,0,0,.5); font-size: 50px; font-family: "微软雅黑"; color:rgba(255,255,255,.5); line-height: 55px; text-align: center; cursor: pointer; z-index: 100; opacity: 0; transition:opacity .3s linear;} 
 .btns .btn:first-child {top: 125px;}
 .btns .btn:last-child {top: 125px; right: 0px;}
 </style>

JS:

 <script>
 onload = function(){
 var btns = document.getElementsByClassName('btn'),
  imgs = document.getElementsByClassName('box')[0].getElementsByTagName('img');

 var index = 2,
  front = 0,
  back = 0,
  offset = false,
  timer = setInterval(timer,5000);
  


 for(var i=0;i<btns.length;i++){
 (function(i){
  btns[i].onclick = function(){click(i)};
 })(i);

 btns[i].onmouseover = function(){
  offset = true;
 }
 btns[i].onmouseout = function(){
  offset = false;
 }
 }

 for(var i=0;i<imgs.length;i++){
 imgs[i].onmouseover = function(){
  offset = true;
 }
 imgs[i].onmouseout = function(){
  offset = false;
 }
 }

 function timer(){
 console.log(offset)
 if(offset){
  return;
 }
 else{
  click(1)
 }
 }

 function click(x){
 imgs[index].setAttribute('class','');
 if(x === 0){
  if(--index < 0){
  index = --imgs.length;
  }
  front = back = index;
  if(++front > --imgs.length){front = 0}
  if(--back < 0){back = --imgs.length}
  imgs[front].style.zIndex = '1';
  imgs[back].style.zIndex = '0';
 }
 else{ 
  if(++index > --imgs.length){
  index = 0; 
  }
  front = back = index;
  if(++front > --imgs.length){front = 0}
  if(--back < 0){back = --imgs.length}
  imgs[front].style.zIndex = '0';
  imgs[back].style.zIndex = '1';
 }
 imgs[index].style.zIndex = '10';
 imgs[front].setAttribute('class','front')
 imgs[back].setAttribute('class','back') 
 imgs[index].setAttribute('class','active');
 }
 }
 </script>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 轮播图  # 原生js实现轮播图的示例代码  # 原生js实现无限循环轮播图效果  # 原生js实现移动开发轮播图、相册滑动特效  # 原生js实现无缝轮播图效果  # 原生js实现旋转木马轮播图效果  # 原生JS轮播图插件  # 原生JS京东轮播图代码  # 原生js实现网易轮播图效果  # 原生js实现焦点轮播图效果  # 无限循环轮播图之运动框架(原生JS实现)  # 原生JS实现的轮播图功能详解  # 又是  # 微软  # 换个  # 大家多多  # css 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何实现本地化和多语言支持?(i18n教程)  微信小程序制作网站有哪些,微信小程序需要做网站吗?  微信小程序 scroll-view组件实现列表页实例代码  高防服务器租用首荐平台,企业级优惠套餐快速部署  Thinkphp 中 distinct 的用法解析  jquery插件bootstrapValidator表单验证详解  大连 网站制作,大连天途有线官网?  常州企业网站制作公司,全国继续教育网怎么登录?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何实现API资源集合?(Resource Collection教程)  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  JavaScript如何操作视频_媒体API怎么控制播放  详解Huffman编码算法之Java实现  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何在服务器上三步完成建站并提升流量?  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  北京网站制作公司哪家好一点,北京租房网站有哪些?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何获取免费开源的自助建站系统源码?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何在宝塔面板创建新站点?  如何快速搭建二级域名独立网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  教你用AI将一段旋律扩展成一首完整的曲子  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel如何实现API速率限制?(Rate Limiting教程)  php 三元运算符实例详细介绍  如何在建站之星绑定自定义域名?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?