经典面试题:点击图片进行两张图片切换

题目:

有两张图片,一张黑白,一张彩色。点击图片,黑白切换成彩色图,再点击彩色切换成黑白图。

解决方法一:利用一个变量统计奇偶点击数。

<img id="pic" src="images/1.jpg" width="526" height="390" alt=""/>

<script>
{
    let pic = document.getElementById("pic");
    let i = 1;
    let changePic = function(){
        i++;
        if( i%2 === 0 ){
            this.src = "images/2.jpg";
        }else{
            this.src = "images/1.jpg";
        }
    };
    pic.addEventListener("click" , changePic );
}
</script>

方式二:结合数组,用数组把相关图片统一管理起来。

<img id="pic" src="images/1.jpg" width="526" height="390" alt=""/>

<script>
{
    let pic = document.getElementById("pic");
    let arr = ["images/1.jpg" , "images/2.jpg"];
    let i = 0;
    let changePic = function(){
        i++;
        this.src = arr [ i%2 ] ;
    };
    pic.addEventListener("click" , changePic );
}
</script>

方式三:结合自定义属性,利用一个自定义属性 data-i  来存储点击的次数。

<img id="pic" src="images/1.jpg" width="526" height="390" data-i="0" alt=""/>

<script>
{
    let pic = document.getElementById("pic");
    let arr = ["images/1.jpg" , "images/2.jpg"];
    let changePic = function(){
        let i = Number( this.getAttribute("data-i"));  // 获取当前的次数
        i++;
        this.setAttribute("data-i",i);
        this.src = arr [ i%2 ] ;
    };
    pic.addEventListener("click" , changePic );
}
</script>

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值