javascript - 在第一次单击时添加类并在第二次单击按钮时向下滚动

标签 javascript jquery html css

第一次点击按钮将添加一个新的 HTML 类,如 .btn-next,第二次(以及更多次)点击后将向下滚动到带有 HTML id 的部分。

我尝试在第一次点击和第二次点击时添加类 .btn-next 这将动画并向下滚动到部分,但它不起作用。

$('.btn-toggle-1').on('click',function() {
    $('.btn-toggle-1 span').text('Idem do toho (70 €)');
    $('.tabs').slideDown();
    $(this).css('backgroundColor','white').addClass('btn-next');

    $('.fcprice').attr("placeholder", "Online tréner za 70 € s DPH");
})

$('.btn-next').click(function() {
    $('html, body').animate({
        scrollTop: $("#section-contact").offset().top-100
    }, 800);
})

按钮的 HTML 代码(在底部):

<div class="col-lg-4 col-sm-12 box box-1">
    <div class="tabs">
        <ul class="nav nav-tabs" id="myTab" role="tablist">
            <li class="nav-item"><a class="nav-link bal1 active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="false">mesačný</a></li>
            <li class="nav-item"><a class="nav-link bal2" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">2-mesačný</a></li>

        </ul>
        <div class="tab-content" id="myTabContent">
            <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
                <ul class="pl-0 tab-list">
                    <li>1x tréningový plán</li>
                    <li>stravovací program</li>
                    <li>online komunikácia počas celej spolupráce</li>
                </ul>
            </div>
            <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
                <ul class="pl-0 tab-list">
                    <li>2x tréningový plán</li>
                    <li>stravovací program</li>
                    <li>online komunikácia počas celej spolupráce</li>
                </ul>
            </div>
        </div>
    </div>

    <button class="btn btn-toggle-1 button wow fadeInUp" data-wow-delay="0.5s"><span>Chcem makať doma</span></button>
</div>

.section-contact 的 HTML,其中输入类 .fcprice 位于: (为了避免垃圾邮件,删除了一些行)

<section id="section-contact" class="page-section wow fadeIn" data-wow-duration="1.5s">
    <form action="" method="POST" class="needs-validation" novalidate>
        <input type="text" class="form-control" placeholder="MENO" name="fname" required>

        <input type="email" class="form-control" placeholder="E-MAIL" name="email" required>

        <input type="text" class="form-control" placeholder="VEK" name="age">

        <input type="text" class="form-control" value="PLATBA BANKOVÝM PREVODOM" name="payment" required>

        <input type="text" class="form-control" placeholder="PRIEZVISKO" name="lname">

        <input type="text" class="form-control" placeholder="TELEFÓN" name="phone">

        <label id="img_category_label" class="form-control field" for="img_category" data-value="">......</label>

        <input type="text" class="form-control fcprice" placeholder="" readonly disabled>

        <button type="submit" name="submit" class="btn btn-toggler"><span>Záväzne objednať</span></button>
    </form>
</section>

怎么了? 非常感谢!

编辑:我添加了 HTML 代码。

最佳答案

我想是因为,两个点击都在同一个元素上,当您想要滚动时,点击的第一个定义会覆盖第二个。

试试这段代码:

$('.btn-toggle-1').on('click',function() {
        if (!$(this).hasClass('btn-next')) {
          $('.btn-toggle-1 span').text('Idem do toho (70 €)');
          $('.tabs').slideDown();
          $(this).css('backgroundColor','white').addClass('btn-next');
          $('.fcprice').attr("placeholder", "Online tréner za 70 € s DPH");
        } else {
          $('html, body').animate({
            scrollTop: $("#section-contact").offset().top-100
          }, 800);
        }
    });
#section-contact{
  margin-top:1200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<button class="btn-toggle-1"><span>boton</span></button>
<p class="cprice">demo</p>
<div id="section-contact">element at scroller</div>

关于javascript - 在第一次单击时添加类并在第二次单击按钮时向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091365/

相关文章:

html - 试图将文本写入表格中的 WRAP

Javascript 时间选择器不工作

javascript - 将一个隐藏的 div 复制到另一个 div

php - 引号导致页面错误

javascript - 排序号数组的伪代码

javascript - 生成元素和关联 $.data() 的更有效方法? [jQuery]

jquery - 为网站下拉导航添加键盘支持

html - NodeJS Express HTML 隐藏输入值仅显示第一个单词

javascript - 无法检索最近的元素

javascript - 在 Express 中将数组传递给 Jade/Pug 路由