zoukankan      html  css  js  c++  java
  • js制作图片轮换切换

    如上图所示,运用js实现4张图片的轮换播放,要求如下:

    1.页面加载时4张图片按照顺序依次循环播放;

    2.当鼠标移入对应图片序号的标签上时,图片显示为对应序号的图片;

    3.当鼠标移除对应序号的标签上时,图片从当前序号开始依次循环播放。

    实现以上功能的代码如下:

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>图片轮换切换</title>
        <style type="text/css">
            body{
                margin: 0px;
                padding: 0px;
            }
            a{
                width: 14px;
                height: 14px;
                text-align: center;
                display: inline-block;
                line-height: 14px;
                text-decoration: none;
                color: black;
                font-size: 14px;
                background-color: #cccccc;
            }
            img{
                width: 524px;
                height: 190px;
            }
            #div1{
                position: absolute;
                top: 160px;
                left: 100px;
            }
            .demo{
                color: #ff7300;
            }
            #content{
                position: relative;
            }
        </style>
        <script type="text/javascript">
            //获取放置在图片上的<a>标签集合
            var as=document.getElementsByTagName("a");
            var num=1;//控制第几个图片和a标签
            window.onload=function() {
                as[0].className = "demo";
                for (var i = 0; i < as.length; i++) {
                    //设置鼠标移入<a>标签上切换图片
                    as[i].onmouseover = function () {
                        var img = document.getElementsByTagName("img")[0];
                        img.src = "./img/ad-0" + this.innerHTML + ".jpg";
                        //移除其余a标签的样式
                        for (var j = 0; j < as.length; j++) {
                            as[j].className = "";
                        }
                        //设置当前a标签的样式
                        this.className = "demo";
                        //设置num为当前图片的序号
                        num=parseInt(this.innerHTML);
                        //暂停图片循环播放定时器
                        clearInterval(id);
                    }
                    //设置鼠标移除时重新启动图片循环播放定时器
                    as[i].onmouseout=function(){
                        id=setInterval("tplh()",2000)
                    }
                }
                //启动图片循环播放定时器
                id=setInterval("tplh()",2000);
            }
            //设置图片循环播放
            function tplh(){
                var img = document.getElementsByTagName("img")[0];
                img.src="./img/ad-0"+num+".jpg";
                //移除其余a标签的样式
                for(var i=0;i<as.length;i++){
                    as[i].className="";
                }
                //设置当前a标签的样式
                as[num-1].className="demo";
                num++;
                if(num>4){
                    num=1;
                }
            }
        </script>
    </head>
    <body>
        <div id="content">
            <img src="./img/ad-01.jpg" />
            <div id="div1">
                <a href="#">1</a>
                <a href="#">2</a>
                <a href="#">3</a>
                <a href="#">4</a>
            </div>
        </div>
    </body>
    </html>

    关键点在于对js事件的灵活运用,以及一些逻辑处理。

  • 相关阅读:
    使用扩展运算符实现数组,对象的深拷贝
    将图片文件转成BASE64格式
    怎么让input默认为0
    两次取反的意义
    css世界一
    Q&H
    .gitignore 中添加.vscode 无效
    百度小程序
    定位元素和opacity
    js 设置元素样式
  • 原文地址:https://www.cnblogs.com/lykblog/p/4523775.html
Copyright © 2011-2022 走看看