JS高级 案例:面向对象实现步进器

该文章展示了一个HTML和CSS构建的界面,结合JavaScript实现了基于面向对象的步进器功能。步进器包含加减按钮和中心显示数值,可以通过点击按钮增加或减少数值。JavaScript代码定义了Stepper函数,用于创建步进器组件,并提供了`low`和`add`方法来设置步长并处理点击事件,更新数值显示。
摘要由CSDN通过智能技术生成

HTML + CSS 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>案例:面向对象实现步进器</title>
    <style>
        .box {
            margin-top: 100px;
            text-align: center;
        }
    </style>
</head>

<body>
    <div class="box"></div>
    <div class="box1"></div>
    <script src="./案例:面向对象实现步进器.js"></script>
    <script>
        var sp1 = new Stepper(
            // 父元素
            '.box',
            {
                // 左右两个标签的类型
                ele: 'button',
                // 中间标签的类型
                textEle: 'span',
                // 左右两边标签的值
                lowValue: '-',
                addValue: '+',
                // 初始值
                firstValue: 0
            })
        // 参数:步长
        sp1.low(5)
        sp1.add(5)
    </script>
</body>

</html>

JS

function Stepper(ele, stepObj) {
    // 拿到父元素
    var faEle = document.querySelector(ele)
    // 创建三个节点元素
    this.lowBtn = document.createElement(stepObj.ele) || 'button'
    this.addBtn = document.createElement(stepObj.ele) || 'button'
    this.textBtn = document.createElement(stepObj.textEle) || 'span'
    // 文字节点放入节点元素
    this.lowBtn.appendChild(document.createTextNode(stepObj.lowValue))
    this.addBtn.appendChild(document.createTextNode(stepObj.addValue))
    this.textBtn.appendChild(document.createTextNode(stepObj.firstValue))
    // 将节点元素放入页面
    faEle.appendChild(this.lowBtn)
    faEle.appendChild(this.textBtn)
    faEle.appendChild(this.addBtn)
}
Stepper.prototype.low = function (step) {
    // 获取步长
    this.step = step
    this.lowBtn.onclick = () => {
        if (this.textBtn.innerHTML >= this.step) {
            this.textBtn.innerHTML = +this.textBtn.innerHTML - this.step
        }
    }
}
Stepper.prototype.add = function (step) {
    // 获取步长
    this.step = step
    this.addBtn.onclick = () => this.textBtn.innerHTML = +this.textBtn.innerHTML + this.step
}

效果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值