原生JS实现幻灯片

发布时间 - 2026-01-10 23:12:55    点击率:

效果如下:

代码如下:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <style type = "text/css">
 *{ padding: 0; margin: 0; }
 li { list-style: none; }
 .box {
 width: 800px;
 height: 450px;
 margin: 50px auto;
 position: relative;
  overflow:hidden;
 }
 .box span {
 width: 40px;
 height: 60px; 
 display: block;
 position: absolute;
 top: 225px;
 margin-top: -20px;
 cursor: pointer;
 z-index: 1;
 }
 .box #left {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left 0;
 left: 0;
  margin-top: -66px;
 display: none;
 }
 .box #right {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right 0;
 right: 0;
  margin-top: -66px;
 display: none;
 }
 .box #txt {
 width: 100%;
 height: 30px;
 background-color: #000;
 opacity: 0.4;
 position: absolute;
 bottom: 0;
 color: #fff;
 line-height: 30px;
 text-align: center;
 }
 #ad {
 width: 4000px;
 height: 450px;
 position: absolute;
 left: -1600px;
 }
 #ad li {
 float: left;
 }
  .box #left:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left -112px;
 }
 .box #right:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right -112px;
 }
 </style>
 <script type = "text/javascript">
 window.onload = function(){
 function $(id){ return document.getElementById(id);}
 var aLi = $("ad").children;
 function animate(obj,target,arrt){
  //关闭上一个定时器
  clearInterval(obj.timer);
  $("txt").innerHTML = obj.children[0].children[0].alt;

  //管理定时器
  obj.timer = setInterval(function(){
 //移动步长
  var step = (target - obj.offsetLeft) / 10;
  //步长取整
  step = step > 0? Math.ceil(step):Math.floor(step);
  //移动盒子 : 盒子位置 + 步长
  obj.style.left = obj.offsetLeft + step+ "px";
  //关闭定时器
  if(obj.offsetLeft%800 ==0){
  clearInterval(obj.timer);
  //判断点击的方向
  if(arrt === "left"){
  var oLi = $("ad").children[aLi.length - 1].cloneNode(true);
  //添加到最前面
  obj.insertBefore(oLi,obj.children[0]);
  //删除最后一个盒子
  obj.removeChild(obj.children[aLi.length - 1]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }else{
  //克隆第一个盒子
  var oLi = obj.children[0].cloneNode(true);
  //添加到最后面
  obj.appendChild(oLi);
  //删除第一个盒子
  obj.removeChild(obj.children[0]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }
 }
  },20);
 }
 var timer = setInterval(autoplay,2000);
 function autoplay(){
  animate($("ad"),-2400,"right");
 }
 $("ad").parentNode.onmouseover = function(){
 clearInterval(timer);
 $("left").style.display = "block";
  $("right").style.display = "block";
 }
 $("ad").parentNode.onmouseout = function(){
  $("left").style.display = "none";
  $("right").style.display = "none";
  timer = setInterval(autoplay,2000);
 }
 $("left").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-800,"left");
 }
 $("right").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-2400,"right");
 }
 }
 </script>
 </head>
 <body>
 <div class="box"> 
 <ul id="ad">
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/4.jpg" alt="闲静似娇花照水,行动如弱柳扶风。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/5.jpg" alt="心较比干多一窍,病如西子胜三分。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/1.jpg" alt="两弯似蹙非蹙笼烟眉,一双似喜非喜含情目。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/2.jpg" alt="态生两靥之愁,娇袭一身之病。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/3.jpg" alt="泪光点点,娇喘微微。"></li>
 </ul>
 <p id="txt">泪光点点,娇喘微微</p>
 <span id="left"></span>
 <span id="right"></span>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js幻灯片  # 原生js实现图片轮播  # 原生js实现轮播图  # vue.js实现的幻灯片功能示例  # JS中利用swiper实现3d翻转幻灯片实例代码  # 移动端触屏幻灯片图片切换插件idangerous swiper.js  # JS实现的幻灯片切换显示效果  # JS实现的手机端精简幻灯片效果  # JS实现的多张图片轮流播放幻灯片效果  # Javascript幻灯片播放功能实现过程解析  # 第一个  # 扶风  # 娇喘  # 最前面  # 西子  # 比干  # overflow  # left  # index  # cursor  # pointer  # display  # span  # absolute  # top  # block  # hidden  # png  # repeat  # images 


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


相关推荐: Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  香港服务器租用每月最低只需15元?  七夕网站制作视频,七夕大促活动怎么报名?  图册素材网站设计制作软件,图册的导出方式有几种?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何在腾讯云服务器快速搭建个人网站?  Laravel如何处理异常和错误?(Handler示例)  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何使用Service Container和依赖注入?(代码示例)  lovemo网页版地址 lovemo官网手机登录  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  高端建站三要素:定制模板、企业官网与响应式设计优化  手机软键盘弹出时影响布局的解决方法  创业网站制作流程,创业网站可靠吗?  中山网站推广排名,中山信息港登录入口?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何生成腾讯云建站专用兑换码?  zabbix利用python脚本发送报警邮件的方法  Laravel如何创建自定义中间件?(Middleware代码示例)  教学论文网站制作软件有哪些,写论文用什么软件 ?  轻松掌握MySQL函数中的last_insert_id()  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  晋江文学城电脑版官网 晋江文学城网页版直接进入  详解Android图表 MPAndroidChart折线图  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel如何处理CORS跨域请求?(配置示例)  如何基于PHP生成高效IDC网络公司建站源码?  使用C语言编写圣诞表白程序  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  如何在建站之星绑定自定义域名?  canvas 画布在主流浏览器中的尺寸限制详细介绍  java获取注册ip实例  如何在阿里云服务器自主搭建网站?  Python结构化数据采集_字段抽取解析【教程】  phpredis提高消息队列的实时性方法(推荐)  魔毅自助建站系统:模板定制与SEO优化一键生成指南  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  打造顶配客厅影院,这份100寸电视推荐名单请查收  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Android Socket接口实现即时通讯实例代码  EditPlus中的正则表达式 实战(4)  高防服务器租用指南:配置选择与快速部署攻略