繁体   English   中英

在Click上上下滑动Div

[英]Slide Div up and down on Click

单击标签后,div将打开并相应关闭。 我想要的是div应该缓慢上下滑动,而不是立即显示。

<a href="" class="accordion">Click here</a>
 <div class="panel" id="AccordionDiv">
            <div class="store">
                <div class="store-row">

                    <div class="cells store-logo text-center">
                        <img src="@strStaticWebsiteUrl@(objOfferPrice.StoreImage)" alt="" />
                    </div>

                    @if (objOfferPrice.Price < objOfferPrice.UrlPrice)
                    {
                        <div class="cells text-center">
                            <div class="product-price offer-price">Rs. @String.Format(System.Globalization.CultureInfo.InvariantCulture, "{0:0,0}", objOfferPrice.Price)<sup>*</sup></div>
                            <p class="real-price">Price: @objOfferPrice.UrlPrice</p>
                        </div>
                    }
                </div>
           </div>

这是html代码,下面是脚本代码。

            <script>
                var acc = document.getElementsByClassName("accordion");
                var i;
                for (i = 0; i < acc.length; i++) {
                    acc[i].addEventListener("click", function () {

                        this.classList.toggle("active");
                        var panel = this.nextElementSibling;
                        if (panel.style.display === "block") {
                            panel.style.display = "none";
                        } else {
                            panel.style.display = "block";
                        }
                    });
                        }
            </script>

jQuery为此提供了一个slideToggle方法

var panel = this.nextElementSibling;
$(panel).slideToggle();

是的,我们在JQuery的“ slideDown”,slideUp和slideToggle中提供了Animation。

$( "#ID1" ).click(function() {
  $( "#book" ).slideDown( "slow", function() {
    // Animation slow slideDown.
  });
});

我们可以与slideUp一起使用。

而“ slideToggle”则同时用于上和下。

使用CSS

CSS动画看起来也比Javascript动画好很多。 CSS动画可以中途取消/反转。

Javascript:

<script>
    var acc = document.getElementsByClassName("accordion");
    for (i = 0; i < acc.length; i++) {
        acc[i].addEventListener("click", function () {
            this.classList.toggle("active");
            this.nextElementSibling.classList.toggle("slideActive");
        });
    }
</script>

CSS:

.accordion {
    height: 0px;
    transition: 0.3s;
}
.accordion .slideActive{
    height: 100px;
}

(或者您喜欢的任何样式)


您可以使用以下方法检查它是否active

this.classList.contains('slideActive');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM