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 相关文章推荐
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
Sep 08 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
带你快速理解javascript中的事件模型
Aug 14 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 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
yii上传文件或图片实例
2014/04/01 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
layui实现数据分页功能
2019/07/27 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
python提取页面内url列表的方法
2015/05/25 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
园林设计师自荐信
2013/11/18 职场文书
银行个人求职自荐信范文
2013/12/16 职场文书
新闻发布会主持词
2014/03/28 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
安全责任书
2015/01/29 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
Python如何让字典保持有序排列
2022/04/29 Python