JavaScript实现图片切换效果


Posted in Javascript onAugust 12, 2017

本文实例为大家分享了JavaScript实现图片切换效果,自定义属性的应用  供大家参考,具体内容如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>图片切换实例</title>
    <style>
      body{
        background-color: #A9A9A9;
        margin:0px;
      }
      ul{
        padding: 0;
        margin: 0;
      }
      li{ 
        list-style: none;
      }
      #pic{
        width:670px;
        height: 420px;
        position:relative;
        margin: 0 auto;/*整个div放到页面中间的位置*/
        background:url(img/loading.png) no-repeat center;
        background-color:#fff;

      }
      #pic img{
        width:670px;
        height: 420px;
      }
      #pic ul{
        position: absolute;
        top: 0px;
        right: -50px;
      }
      #pic li{
        width:40px;
        height:40px;
        margin-bottom: 4px;
        background:#666;
      }
      #pic .active{
        background: cadetblue;
      }
      #pic span{
        top:0px;


      }
      #pic p{
        bottom:0px;
        margin:0;

      }
      #pic p,#pic span{
        width: 670px;
        height: 30px;
        line-height: 30px;
        text-align: center;
        position:absolute;
        left:0px;
        color:#fff;
        background-color:#333;

      }
    </style>
    <script>


      window.onload = function(){
        var oDiv = document.getElementById("pic");
        var oImg = document.getElementsByTagName("img")[0];//有tag标签的地方就得有数组[0],否则不提示错误,但却会加载不出来需要的内容。
        var oP = document.getElementsByTagName("p")[0];
        var oNum = document.getElementsByTagName("span")[0]; 
        var oUl = document.getElementsByTagName("ul")[0];
        var aLi = oUl.getElementsByTagName("li");//通过父标签找到的子标签,这里不能加数组[0]

        var arrUrl = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.png"];
        var arrText = ["中原工学院图书馆","中工宿舍楼","玫瑰花","小猫咪","绿色盆栽"];

        for(var i=0;i<arrUrl.length;i++){
          oUl.innerHTML += "<li></li>";//添加用“+=”,该写用“=”
        }
        //初始化
        //有数组的地方,大部分都有一个数字在静静的等待.数组配合数字以便找到需要的内容。
        var num = 0;
        oImg.src = arrUrl[num];
        oP.innerHTML = arrText[num];
        oNum.innerHTML = 1+num+'/'+arrUrl.length;
        //在ul中添加li,根据数组的长度,为ul添加li的数量
        aLi[num].className = "active";//为标签添加class属性,需要用到className

        for(i=0;i<aLi.length;i++){
          aLi[i].index = i;//索引值,需要添加对应关系,就要想到添加索引值
                  //定义的有数组,就不能忘记加[0]
          aLi[i].onclick = function(){
            //点击按钮,找到与之对应的图片
            oImg.src = arrUrl[this.index];
            oP.innerHTML = arrText[this.index];
            oNum.innerHTML = 1+this.index+'/'+arrUrl.length;
            //添加对应的点击时,li的图标发生变化,两种思路
            //思路1:清空当前所有active样式,为当前添加此class属性(扩展性好,但是运行速度可能不好)
            for(var i=0; i<aLi.length; i++){
              aLi[i].className = "";
            }
            this.className = "active";
            //思路2:清空前一个点击li的样式,为当前添加class属性(定点清除)
          }

        }


    }    
    </script>
  </head>
  <body>
    <div id="pic" >

      <img src=""/>
      <span>数量正在加载中......</span>
      <p>文字说明正在加载中......</p>
      <ul>

      </ul>
    </div>
  </body>
</html>

JavaScript代码片段可以简化成如下:

<script>


      window.onload = function(){
        var oDiv = document.getElementById("pic");
        var oImg = document.getElementsByTagName("img")[0];
        var oP = document.getElementsByTagName("p")[0];
        var oNum = document.getElementsByTagName("span")[0]; 
        var oUl = document.getElementsByTagName("ul")[0];
        var aLi = oUl.getElementsByTagName("li");
        var arrUrl = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.png"];
        var arrText = ["中原工学院图书馆","中工宿舍楼","玫瑰花","小猫咪","绿色盆栽"];
        for(var i=0;i<arrUrl.length;i++){
          oUl.innerHTML += "<li></li>";
        }
        //初始化
        var num = 0;
        function fnTab(){
          oImg.src = arrUrl[num];
          oP.innerHTML = arrText[num];
          oNum.innerHTML = 1+num+'/'+arrUrl.length;
          aLi[num].className = "";
        }
        fnTab();

        for(i=0;i<aLi.length;i++){
          aLi[i].index = i;
          aLi[i].onclick = function(){
            num = this.index;
            fnTab();
            }
            aLi[num].className = "active";
          }

        }


    }    
</script>

效果图:

JavaScript实现图片切换效果

不会做动图!明天再试试!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
jquery下checked取值问题的解决方法
Aug 09 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
简单实现jquery焦点图
Dec 12 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 Javascript
AngularJS前端页面操作之用户修改密码功能示例
Mar 27 Javascript
vue 里面使用axios 和封装的示例代码
Sep 01 Javascript
基于Vue的延迟加载插件vue-view-lazy
May 21 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 #Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 #Javascript
EasyUI在Panel上动态添加LinkButton按钮
Aug 11 #Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 #Javascript
详解Node中导入模块require和import的区别
Aug 11 #Javascript
vue实现单选和多选功能
Aug 11 #Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 #Javascript
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Django中使用group_by的方法
2015/05/26 Python
浅析Python基础-流程控制
2016/03/18 Python
python实现图片批量压缩程序
2018/07/23 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
python读取指定字节长度的文本方法
2019/08/27 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
python OpenCV学习笔记
2021/03/31 Python
晶体管来复再生式二管收音机
2021/04/22 无线电