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 相关文章推荐
extjs表格文本启用选择复制功能具体实现
Oct 11 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
详解JavaScript中循环控制语句的用法
Jun 03 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
网络传输协议(http协议)
Nov 18 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
微信小程序列表时间戳转换实现过程解析
Oct 12 Javascript
JS highcharts动态柱状图原理及实现
Oct 16 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 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
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
softmax及python实现过程解析
2019/09/30 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python中有帮助函数吗
2020/06/19 Python
药学专业大学生自荐信
2013/09/28 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
深入理解python协程
2021/06/15 Python
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Python如何让字典保持有序排列
2022/04/29 Python