JS实现可切换图片的幻灯切换效果示例


Posted in Javascript onMay 24, 2019

本文实例讲述了JS实现可切换图片的幻灯切换效果。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>JS切换图片幻灯切换效果</title>
  <style>
    body, div, ul, li { margin: 0; padding: 0; }
    ul { list-style-type: none; }
    body { background: #000; text-align: center; font: 12px/20px Arial; }
    #box { position: relative; width: 322px; height: 172px; background: #fff; border-radius: 5px; border: 8px solid #fff; margin: 10px auto; }
    #box .list { position: relative; width: 320px; height: 240px; overflow: hidden; border: 1px solid #ccc; }
    #box .list li { position: absolute; top: 0; left: 0; width: 320px; height: 240px; opacity: 0; filter: alpha(opacity=0); }
    #box .list li.current { opacity: 1; filter: alpha(opacity=100); }
    #box .count { position: absolute; right: 0; bottom: 5px; }
    #box .count li { color: #fff; float: left; width: 20px; height: 20px; cursor: pointer; margin-right: 5px; overflow: hidden; background: #F90; opacity: 0.7; filter: alpha(opacity=70); border-radius: 20px; }
    #box .count li.current { color: #fff; opacity: 1; filter: alpha(opacity=100); font-weight: 700; background: #f60; }
    #tmp { width: 100px; height: 100px; background: red; position: absolute; }
  </style>
  <script type="text/javascript">
    window.onload = function() {
      var oBox = document.getElementById("box");
      var aUl = document.getElementsByTagName("ul");
      var aImg = aUl[0].getElementsByTagName("li");
      var aNum = aUl[1].getElementsByTagName("li");
      var timer = play = null;
      var i = index = 0;
      var bOrder = true;
      //切换按钮
      for(i = 0; i < aNum.length; i++) {
        aNum[i].index = i;
        aNum[i].onmouseover = function() {
          show(this.index)
        }
      }
      //鼠标划过关闭定时器
      oBox.onmouseover = function() {
        clearInterval(play)
      };
      //鼠标离开启动自动播放
      oBox.onmouseout = function() {
        autoPlay()
      };
      //自动播放函数
      function autoPlay() {
        play = setInterval(function() {
          //判断播放顺序
          bOrder ? index++ : index--;
          //正序
          index >= aImg.length && (index = aImg.length - 2, bOrder = false);
          //倒序
          index <= 0 && (index = 0, bOrder = true);
          //调用函数
          show(index)
        }, 2000);
      }
      autoPlay();//应用
      function show(a) {
        index = a;
        var alpha = 0;
        for(i = 0; i < aNum.length; i++)aNum[i].className = "";
        aNum[index].className = "current";
        clearInterval(timer);
        for(i = 0; i < aImg.length; i++) {
          aImg[i].style.opacity = 0;
          aImg[i].style.filter = "alpha(opacity=0)";
        }
        timer = setInterval(function() {
          alpha += 2;
          alpha > 100 && (alpha = 100);
          aImg[index].style.opacity = alpha / 100;
          aImg[index].style.filter = "alpha(opacity = " + alpha + ")";
          alpha == 100 && clearInterval(timer)
        }, 20);
      }
    };
  </script>
</head>
<body>
<div id="box">
  <ul class="list">
    <li class="current"><img src="img/3.jpg" width="320" height="240"/></li>
    <li><img src="img/1.jpg" width="320" height="240"/></li>
    <li><img src="img/2.jpg" width="320" height="240"/></li>
    <li><img src="img/3.jpg" width="320" height="240"/></li>
    <li><img src="img/4.jpg" width="320" height="240"/></li>
  </ul>
  <ul class="count">
    <li class="current">1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
  </ul>
</div>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery表格行换色的三种实现方法
Jun 27 Javascript
基于jquery的loading 加载提示效果实现代码
Sep 01 Javascript
javascript中数组的冒泡排序使用示例
Dec 18 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
基于javascript的无缝滚动动画1
Aug 07 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 Javascript
微信小程序动态添加view组件的实例代码
May 23 #Javascript
Vue+Element实现动态生成新表单并添加验证功能
May 23 #Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 #Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 #Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 #Javascript
微信小程序开发实现消息推送
Nov 18 #Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 #jQuery
You might like
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
javascript引用对象的方法
2007/01/11 Javascript
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
子页向父页传值示例
2013/11/27 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
远程调用的原理
2014/07/05 面试题
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
幼教毕业生自我鉴定
2014/01/12 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
商场周年庆活动方案
2014/08/19 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
辞职书格式样本
2015/02/26 职场文书
起诉书格式范文
2015/05/20 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
工作一年自我鉴定
2019/06/20 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python