jQuery实现验证码控制按钮及图片放大功能分析

本文分享了前端实现发送验证码按钮禁用功能的步骤,包括定时倒计时和后端图片切换的代码示例。通过jQuery操作DOM,展示了如何控制用户体验和元素交互。同时介绍了图片切换的逻辑,涉及CSS选择器和自定义属性的应用。
摘要由CSDN通过智能技术生成

下面分享两个小案例:

1、实现发送验证码控制按钮禁用

主要步骤及代码思路是,

  • 添加点击按钮事件

  • 按钮被禁用

  • 替换按钮内的内容

  • 每隔1s进行倒计时的变换

  • 倒计时到0时,停止倒计时,按钮恢复发送

  • 按钮内容更改,禁用取消

<body>
    <input type="text" id="txt">
    <input type="button" id="btn" value="发送">

    <script src="../jq/jquery-1.12.4.min.js"></script>
    <script>
        var $btn = $("#btn");

        $btn.click(function(){
            var n = 5;
            $(this).prop("disabled",true).val(n + "s 后重新发送")

            var timmer = setInterval(() => {
            //这里如果使用function的话,$(this)指向的是window,需要将$(this)指向btn,那就直接使用箭头含税即可
                n--;
                $(this).val(n + "s 后重新发送")
                if(n == 0){
                    $(this).prop("disabled",false).val("重新发送");
                    clearInterval(timmer);
                }
            },1000)
        })
    </script>
</body>

2、放大镜切换项

主要步骤及代码思路是,

  • 首先要获取元素

  • 给小图加上鼠标移上事件,切换类名

  • 排他思想,切换类名,给图片的父级添加类名,父级的兄弟取消选中的样式的类名

  • 更改中图和大图的路径
    ​ ①提前存储好图片路径的前缀(方便后期进行更改路径什么的)
    ​ ②关于大图、中图前缀后面的路径,存储在类小图img的自定义属性中,这样方便后期取路径
    ​ 进行对应图片路径的设置

<style>
   *{
     margin: 0;
     padding: 0;
    }
   ul{
      list-style: none;
    }
   .leftbox{
       float: left;
       width: 400px;
    }
    .leftbox .top{
       width: 400px;
       border: 1px solid rgb(224, 224, 224);
    }
   .leftbox .tpo img{
      width: 400px;
    }
   .leftbox ul{
      width: 188px;
      margin: 10px auto;
    }
   .leftbox ul li{
      float: left;
      width: 54px;
      height: 54px;
      border: 1px solid rgb(255, 255, 255);
    }
    .leftbox ul li.current{
       border-color:  red;
     }
    .leftbox ul li + li{
       margin-left: 10px;
     }
     .rightbox{
        float: left;
        margin-left: 10px;
        width: 500px;
        height: 500px;
        border: 1px solid #eee;
        overflow: hidden;
     }      
</style>
  
<body>
   <div class="leftbox">
     <div class="top">
         <img src="img/m1.jpg" alt="">
   </div>
   <ul>
        <li class="current">
           <img src="img/s1.jpg" mrc="m1.jpg" brc="b1.jpg">
        </li>
        <li>
           <img src="img/s2.jpg" mrc="m2.jpg" brc="b2.jpg">
        </li>
        <li>
            <img src="img/s3.jpg" mrc="m3.jpg" brc="b3.jpg">
        </li>
    </ul>
</div>
  
 <div class="rightbox">
    <img src="img/b1.jpg" alt="">
 </div>
  
<script src="../jq/jquery-1.12.4.min.js"></script>
<script>
   //获取元素
   var $imgs = $(".leftbox ul li img");
   var $mimg = $(".leftbox .top img");
   var $bimg = $(".rightbox img");
   //添加鼠标移上事件
   $imgs.mouseenter(function(){
   // 1 排他思想,添加类名
             $(this).parent().addClass("current").siblings().removeClass("current");
   //2 更改中图、大图的路径
   // 获取路径
   var path = "img/"//图片路径前缀
   // 从小图的自定义属性中 获取路径
   var mrc = path + $(this).attr("mrc");
   var brc = path + $(this).attr("brc");
   // 设置路径
   $mimg.attr("src",mrc);
   $bimg.attr("src",brc);
})
</script>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值