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 相关文章推荐
javascript 节点遍历函数
Mar 28 Javascript
jquery实用代码片段集合
Aug 12 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
javascript操作符&quot;!~&quot;详解
Feb 10 Javascript
JavaScript中的闭包
Feb 24 Javascript
Vue.js每天必学之过渡与动画
Sep 06 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
vue自定义过滤器创建和使用方法详解
Nov 06 Javascript
javascript前端实现多视频上传
Dec 13 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
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
js实现图片实时时钟
2020/01/15 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
jQuery实现带进度条的轮播图
2020/09/13 jQuery
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python实现黑客字幕雨效果
2018/06/21 Python
Numpy中的mask的使用
2018/07/21 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python opencv实现简易画图板
2020/08/27 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
初中班级口号
2014/06/09 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
《确定位置》教学反思
2016/02/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
python实现双链表
2022/05/25 Python