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 相关文章推荐
Prototype 学习 Prototype对象
Jul 12 Javascript
解决IE6的PNG透明JS插件使用介绍
Apr 17 Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 Javascript
node.js中的console.time方法使用说明
Dec 09 Javascript
ECMAScript6块级作用域及新变量声明(let)
Jun 12 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
Aug 07 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
Nov 01 Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 Javascript
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
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
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python 日志 logging模块详细解析
2020/03/31 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
给女儿的表扬信
2014/01/18 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
商场周年庆活动方案
2014/08/19 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
学校计划生育责任书
2015/05/09 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
python批量创建变量并赋值操作
2021/06/03 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技