【问题标题】:Checkout radial progress bar event签出径向进度条事件
【发布时间】:2017-05-17 04:42:22
【问题描述】:

我创建了带有一些动画和过渡的径向结帐进度条。在按钮上添加了事件。但问题是我在结帐的每个步骤都有不同的内容。什么是最佳实践。是否更好地使用数据属性。为了这。内容应隐藏并显示以进行某些结帐。 codepen

    <div class="step-1" id="checkout-progress" data-current-step="1">
    <div class="progress-bar">
        <div class="step step-1 active " data-step="1"><span> 1</span>
            <div class="step-check">t</div>
            <div class="step-label"> address</div>
        </div>
        <div class="step step-2" data-step="2"><span> 2</span>
            <div class="step-check">a</div>
            <div class="step-label"> shipping</div>
        </div>
        <div class="step step-3" data-step="3"><span> 3</span>
            <div class="step-check">b</div>
            <div class="step-label"> payment</div>
        </div>
        <div class="step step-4" data-step="4"><span> 4</span>
            <div class="step-check">3</div>
            <div class="step-label"> summary</div>
        </div>
    </div>
</div>
<!-- <div class="button-container">
    <div class="btn btn-prev"> previous step</div>
    <div class="btn btn-next"> next step</div>
</div> -->


<div class="checkout-content" data-step="1">
    <h1>checkout content 1</h1>
    <div class="btn btn-next"> next step</div>
    <div class="btn btn-next"> next step</div>
</div>
<div class="checkout-content" data-step="2">
    <h1>checkout content 2</h1>
    <div class="btn btn-next"> next step</div>
    <div class="btn btn-next"> next step</div>
</div>
<div class="checkout-content" data-step="3">
    <h1>checkout content 3</h1>
    <div class="btn btn-next"> next step</div>
    <div class="btn btn-next"> next step</div>
</div>
<div class="checkout-content" data-step="4">
    <h1>checkout content 4</h1>
    <div class="btn btn-next"> next step</div>
    <div class="btn btn-next"> next step</div>
</div>


$('.btn-next').on('click', function() {

    var currentStepNum = $('#checkout-progress').data('current-step');
    var nextStepNum = (currentStepNum + 1);
    var currentStep = $('.step.step-' + currentStepNum);
    var nextStep = $('.step.step-' + nextStepNum);
    var progressBar = $('#checkout-progress');
    $('.btn-prev').removeClass('disabled');
    if(currentStepNum == 5) {
        return false;
    }
    if(nextStepNum == 5){
        $(this).addClass('disabled');
    }
    // $('.checkout-progress').removeClass('.step-' + currentStepNum).addClass('.step-' + (currentStepNum + 1));

    currentStep.removeClass('active').addClass('valid');
    currentStep.find('span').addClass('opaque');
    currentStep.find('.step-check').removeClass('opaque');

    nextStep.addClass('active');
    progressBar.removeAttr('class').addClass('step-' + nextStepNum).data('current-step', nextStepNum);
});


$('.btn-prev').on('click', function() {

    var currentStepNum = $('#checkout-progress').data('current-step');
    var prevStepNum = (currentStepNum - 1);
    var currentStep = $('.step.step-' + currentStepNum);
    var prevStep = $('.step.step-' + prevStepNum);
    var progressBar = $('#checkout-progress');
    $('.btn-next').removeClass('disabled');
    if(currentStepNum == 1) {
        return false;
    }
    if(prevStepNum == 1){
        $(this).addClass('disabled');
    }
    // $('.checkout-progress').removeClass('.step-' + currentStepNum).addClass('.step-' + (prevStepNum));

    currentStep.removeClass('active');
    prevStep.find('span').removeClass('opaque');
    prevStep.find('.step-check').addClass('opaque');

    prevStep.addClass('active').removeClass('valid');
    progressBar.removeAttr('class').addClass('step-' + prevStepNum).data('current-step', prevStepNum);
});

【问题讨论】:

    标签: javascript jquery css progress-bar checkout


    【解决方案1】:

    你为什么在每个阶段都在包含部分重复操作(下一步和 pev)按钮。将其设为名为 .actions 的新部分,然后您可以将操作按钮放在它们的... 然后你可以拥有data-target 属性,该属性保存单击时需要转到的 stepNumber 的值...

    并且您需要更改data-target 属性,每次单击您希望用户移动到的位置时...并且与 pev 按钮相同...

    【讨论】:

    • 我使用不同的元素来完成所有结帐,包含部分中的所有下一步按钮都应该是。
    • 可能会使用类似这样的东西 $(this).toggle(); $(this).prev().hide(); $(this).next().show();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多