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 forEach通用循环遍历方法
Oct 11 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
jQuery实现的网页左侧在线客服效果代码
Oct 23 Javascript
去除html代码里面的script正则方法
May 19 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
layui前端框架之table表数据的刷新方法
Aug 17 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
Feb 28 Javascript
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
vue+echarts实现动态折线图的方法与注意
Sep 01 Javascript
js+css3实现简单时钟特效
Sep 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 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
PHP7修改的函数
2021/03/09 PHP
javascript继承的六大模式小结
2015/04/13 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
用Python实现KNN分类算法
2017/12/22 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
浅析PEP572: 海象运算符
2019/10/15 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
python把一个字符串切开的实例方法
2020/09/27 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
运动会入场词100字
2014/02/06 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
校庆活动策划方案
2014/06/05 职场文书
初中班干部工作总结
2015/08/10 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫