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 相关文章推荐
setTimeout的延时为0时多个浏览器的区别
May 23 Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
Javascript和Java获取各种form表单信息的简单实例
Feb 14 Javascript
js函数调用的方式
May 06 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
JavaScript基础知识及常用方法总结
Jan 10 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
jquery easyUI中ajax异步校验用户名
Aug 19 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
jQuery ajax - getScript() 方法和getJSON方法
May 14 jQuery
微信小程序动态添加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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
javascript常用方法汇总
2014/12/02 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
Python赋值语句后逗号的作用分析
2015/06/08 Python
Django自定义认证方式用法示例
2017/06/23 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
详解python中__name__的意义以及作用
2019/08/07 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
给海归自荐信的建议
2013/12/13 职场文书
培训演讲稿范文
2014/01/12 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
python如何读取和存储dict()与.json格式文件
2022/06/25 Python
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL