原生-购物车计数器

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div div
        {
            width: 20px;
            text-align: center;
            line-height: 20px;
            height: 20px;
            background-color: white;
            border: 1px solid #000000;
            cursor: pointer;
            float: left;
        }
        input{
            width: 40px;
            height: 18px;
            border: 1px solid #000000;
            border-left: none;
            border-right:none ;
            background-color: white;
            float: left;
            text-align: center;
            outline: none;
        }
    </style>
</head>
<body>
    <div>
        <div class="subtractBn">-</div>
        <input type="text" value="1">
        <div class="addBn">+</div>
    </div>
<script>
    var subtractBn=document.querySelector(".subtractBn");
    var addBn=document.querySelector(".addBn");
    var input=document.querySelector("input");
    var sum=1;
    subtractBn.addEventListener("click",clickHandler);
    subtractBn.addEventListener("mousedown",clickHandler);
    addBn.addEventListener("click",clickHandler);
    addBn.addEventListener("mousedown",clickHandler);
    input.addEventListener("input",inputHandler);
    function clickHandler(e) {
        if(e.type==="mousedown"){
            e.preventDefault();
            return;
        }
        if(this.textContent==="+"){
            sum++;
            if(sum>99) sum=99;
        }else{
            sum--;
            if(sum<1) sum=1;
        }
        input.value=sum.toString();
    }

    function inputHandler(e) {
        input.value=input.value.replace(/[^0-9]/g,"");
        if(Number(input.value)>99){
            sum=99;
            input.value=sum;
            return;
        }
        if(Number(input.value)<1){
            sum=1;
            input.value=sum;
            return;
        }
        sum=Number(input.value);
    }

</script>
</body>
</html>
复制代码

 

posted @   吴小明-  阅读(234)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示