jQuery를 사용하여 요소를 자동 높이로 애니메이션


171

나는 애니메이션을 할 <div>에서 200pxauto높이입니다. 그래도 작동하지 않는 것 같습니다. 아무도 방법을 알고 있습니까?

코드는 다음과 같습니다.

$("div:first").click(function(){
  $("#first").animate({
    height: "auto"
  }, 1000 );
});

14
최상의 답변을 수락 된 것으로 표시해야합니다.
kleinfreund


@IanMackinnon이 질문에는 확실히 더 나은 답변이 있습니다. 나는 그 질문을 이것의 복제본으로 닫았다.
Madara 's Ghost

답변:


254
  1. 현재 높이를 저장하십시오.

    var curHeight = $('#first').height();
  2. 일시적으로 높이를 자동으로 전환하십시오.

    $('#first').css('height', 'auto');
  3. 자동 높이를 가져옵니다.

    var autoHeight = $('#first').height();
  4. 다음으로 전환 curHeight하여 애니메이션을 적용하십시오 autoHeight.

    $('#first').height(curHeight).animate({height: autoHeight}, 1000);

그리고 함께 :

var el = $('#first'),
    curHeight = el.height(),
    autoHeight = el.css('height', 'auto').height();
el.height(curHeight).animate({height: autoHeight}, 1000);

@Daniel, JS 코드는 어디에 있습니까? 해당 비트 및 참조하는 요소를 표시하는 HTML 부분을 게시하십시오.
David Tang

21
이것은 작동하지만 자동 증가 동작을 요소에 복원하는 콜백을 추가했습니다. .animated({height: autoHeight}, 1000, function(){ el.height('auto'); });
rg89

반응 형 디자인에서 고정 높이 설정에주의하십시오. 사용자가 화면 크기를 조정하면 엉망이됩니다. 애니메이션이 완료되면 높이를 '자동'으로 설정하는 것이 가장 좋습니다.
Jonathan Tonge

4
이로 인해 FOUC가 발생할 가능성이 있습니다. 애니메이션하기 전에 요소가 1 초 동안 전체 높이로 점프하는 것을 볼 수 있습니다.
Dingredient

1
FOUC ( "스타일이없는 콘텐츠의 플래시")는 요소 opacity: 0; position: absolute;를 측정하는 동안 처음에 요소 를 제공 하고 완료되면 요소 를 제거 하여 FOUC를 방지 할 수 있습니다 .
JacobEvelyn

194

IMO는 가장 깨끗하고 쉬운 솔루션입니다.

$("#first").animate({height: $("#first").get(0).scrollHeight}, 1000 );

설명 : DOM은 초기 렌더링에서 이미 자동 높이로 설정했을 때 확장 된 div의 크기를 알고 있습니다. 이 속성은 DOM 노드에로 저장됩니다 scrollHeight. 호출하여 jQuery 요소에서 DOM 요소를 가져와야 get(0)속성에 액세스 할 수 있습니다.

높이를 자동으로 설정하기 위해 콜백 함수를 추가하면 애니메이션이 완료된 후 응답 성이 향상됩니다 (신용 chris-williams ).

$('#first').animate({
    height: $('#first').get(0).scrollHeight
}, 1000, function(){
    $(this).height('auto');
});

2
놀랄 만한! developer.mozilla.org/en-US/docs/Web/API/Element.scrollHeight 에 따르면 IE8에서도 지원 clientHeight되지만 지원되지 않는 것 같습니다 : developer.mozilla.org/en-US/docs/Web/ API / Element.clientHeight
Sven

1
여백은 객체 높이의 일부가 아닌 상자 모델을 정의한 것입니다. 그래도 언제든지 여백을 직접 추가 할 수 있습니다.
Liquinaut

22
깜박
거리지

7
또한 이것이 최선의 해결책이라고 생각합니다. 응답 성을 높이기 위해 높이를 자동으로 설정하는 콜백 함수를 추가합니다. $('#first').animate({ height: $('#first').get(0).scrollHeight }, 1000, function() { $(this).height('auto'); });
Chris Williams

1
와우, 이것은 매우 우아합니다. scrollWidth너비 애니메이션 에도 적용됩니다 .
NILS

24

이것은 기본적으로 Box9으로 대답과 같은 접근 방식하지만 좋은에 싸서 JQuery와 플러그인 일반 애니메이션과 같은 인수를 더 애니메이션 매개 변수가와 같은 코드를 반복 피곤해야하는 경우를 위해, :

;(function($)
{
  $.fn.animateToAutoHeight = function(){
  var curHeight = this.css('height'),
      height = this.css('height','auto').height(),
      duration = 200,
      easing = 'swing',
      callback = $.noop,
      parameters = { height: height };
  this.css('height', curHeight);
  for (var i in arguments) {
    switch (typeof arguments[i]) {
      case 'object':
        parameters = arguments[i];
        parameters.height = height;
        break;
      case 'string':
        if (arguments[i] == 'slow' || arguments[i] == 'fast') duration = arguments[i];
        else easing = arguments[i];
        break;
      case 'number': duration = arguments[i]; break;
      case 'function': callback = arguments[i]; break;
    }
  }
  this.animate(parameters, duration, easing, function() {
    $(this).css('height', 'auto');
    callback.call(this, arguments);
  });
  return this;
  }
})(jQuery);

편집 : 체인 가능하고 깔끔한 지금


23

더 나은 솔루션은 JS를 사용하여 요소의 높이를 설정하지 않습니다. 다음은 고정 높이 요소를 전체 ( "자동") 높이로 애니메이션하는 솔루션입니다.

var $selector = $('div');
    $selector
        .data('oHeight',$selector.height())
        .css('height','auto')
        .data('nHeight',$selector.height())
        .height($selector.data('oHeight'))
        .animate({height: $selector.data('nHeight')},400);

https://gist.github.com/2023150


2
이 oneliner는 이해하기 쉽지 않습니다. 여러 줄을 작성하면 다른 사람들이 조금 나아질 수 있습니다.
Jaap

사용자가 창 크기를 조정하면 자동 높이가 변경 될 수 있으므로이 방법이 가장 좋습니다. 다음을 참조하십시오. // 필터의 높이에 애니메이션을 적용합니다. toggleSlider () {if ($ ( '# filters'). height ()! = 0) {$ ( '# filters'). animate ({height : '0 '}); } else {var $ selector = $ ( '# filters'); $ selector .data ( 'oHeight', $ selector.height ()) .css ( 'height', 'auto') .data ( 'nHeight', $ selector.height ()) .height ($ selector.data ( ' oHeight ')) .animate ({height : $ selector.data ('nHeight ')}, 400); }; console.log ( 'agg'); }
Ricky

div가 열리도록 작동하지만 400ms를 초과하지는 않습니다. 어쩌면 다르게 설정 한 것이 있지만 깜박 거리는 것만 같습니다.
ntgCleaner

작동하지만이 세트 height 고정 값 (예 : 122px)으로 설정됩니다. 나는 시간 옵션 인수 (400) 교체했다 그래서 내 요소는 잠시 후 높이를 변경{duration: 400, complete: function() {$selector.css('height', 'auto');}}
jsruok을

12

이것은 작동하고 전에 솔루션보다 간단합니다.

CSS :

#container{
  height:143px;  
}

.max{
  height: auto;
  min-height: 143px;
}

JS :

$(document).ready(function() {
    $("#container").click(function() {      
        if($(this).hasClass("max")) {
            $(this).removeClass("max");
        } else {
            $(this).addClass("max");
        }

    })
});

참고 :이 솔루션에는 jQuery UI가 필요합니다


1
여기에는 Jquery UI 플러그인이 필요하지만 원래 질문은 jquery에만 관한 것입니다. 그러나 Jquery UI를 사용하는 경우 작동합니다.
user56reinstatemonica8

4
$ (this) .toggleClass ( 'max', 250);을 사용할 수도 있습니다. if 문을 사용하는 대신
Antoine Hedgecock

1
왜 당신은과 두 번째 값을 포함하는 .addClass과를 .removeClass?
bowl0stu


7

항상 #first의 하위 요소를 래핑하고 래퍼의 높이를 변수로 저장할 수 있습니다. 이것은 가장 예쁘거나 가장 효율적인 대답은 아니지만 속임수입니다.

여기 에 재설정을 포함 시킨 바이올린 이 있습니다.

그러나 당신의 목적을 위해 고기와 감자는 다음과 같습니다.

$(function(){
//wrap everything inside #first
$('#first').children().wrapAll('<div class="wrapper"></div>');
//get the height of the wrapper 
var expandedHeight = $('.wrapper').height();
//get the height of first (set to 200px however you choose)
var collapsedHeight = $('#first').height();
//when you click the element of your choice (a button in my case) #first will animate to height auto
$('button').click(function(){
    $("#first").animate({
        height: expandedHeight            
    })
});
});​

5

사용 slideDownslideUp

$("div:first").click(function(){ $("#first").slideDown(1000); });

1
slideUp이 div를 완전히 축소하므로 height : auto 함수를 해결하지 못합니다.
Jaap

5

나는 그것을 고칠 수 있었다 : D heres the code.

var divh = document.getElementById('first').offsetHeight;
$("#first").css('height', '100px');
$("div:first").click(function() {
  $("#first").animate({
    height: divh
  }, 1000);
});

4

높이를 다시 자동으로 설정하는 콜백을 추가하여 Liquinaut의 응답이 창 크기 변경에 응답하도록 만들 수 있습니다.

$("#first").animate({height: $("#first").get(0).scrollHeight}, 1000, function() {$("#first").css({height: "auto"});});

4

기본적으로 높이 자동은 요소가 렌더링 된 후에 만 ​​사용할 수 있습니다. 고정 높이를 설정하거나 요소가 표시되지 않으면 트릭없이 액세스 할 수 없습니다.

다행히도 사용할 수있는 몇 가지 트릭이 있습니다.

요소를 복제하고보기 외부에 표시하여 높이를 자동으로 지정하면 복제본에서 가져와 나중에 기본 요소에 사용할 수 있습니다. 나는이 기능을 사용하고 잘 작동하는 것 같습니다.

jQuery.fn.animateAuto = function(prop, speed, callback){
    var elem, height, width;

    return this.each(function(i, el){
        el = jQuery(el), elem =    el.clone().css({"height":"auto","width":"auto"}).appendTo("body");
        height = elem.css("height"),
        width = elem.css("width"),
        elem.remove();

        if(prop === "height")
            el.animate({"height":height}, speed, callback);
        else if(prop === "width")
            el.animate({"width":width}, speed, callback);  
        else if(prop === "both")
            el.animate({"width":width,"height":height}, speed, callback);
    });   
}

용법:

$(".animateHeight").bind("click", function(e){
    $(".test").animateAuto("height", 1000); 
});

$(".animateWidth").bind("click", function(e){
    $(".test").animateAuto("width", 1000);  
});

$(".animateBoth").bind("click", function(e){
    $(".test").animateAuto("both", 1000); 
});

1
해당 함수를 사용하지 않으려면 다음과 같이하십시오. var clone = element.clone () clone.appendTo ( 'body') clone.css ( 'height', 'auto') var itemHeight = clone.outerHeight ( ); clone.remove () 이제 itemHeight 변수에 항목 높이가 있으므로 단순한 애니메이션 이상으로 사용할 수 있습니다.
Stan George

3

당신은 항상 이것을 할 수 있습니다 :

jQuery.fn.animateAuto = function(prop, speed, callback){
var elem, height, width;
return this.each(function(i, el){
    el = jQuery(el), elem = el.clone().css({"height":"auto","width":"auto"}).appendTo("body");
    height = elem.css("height"),
    width = elem.css("width"),
    elem.remove();

    if(prop === "height")
        el.animate({"height":height}, speed, callback);
    else if(prop === "width")
        el.animate({"width":width}, speed, callback);  
    else if(prop === "both")
        el.animate({"width":width,"height":height}, speed, callback);
});  
}

여기 바이올린이 있습니다 : http://jsfiddle.net/Zuriel/faE9w/2/


1
당신은 대체 할 수 있습니다 :에 .appendTo("body")의해.appendTo(el.parent())
Steffi

2

선택기가 일치하지 않는 것 같습니다. 요소의 ID가 'first'입니까, 아니면 모든 div의 첫 번째 요소입니까?

더 안전한 해결책은 'this'를 사용하는 것입니다.

// assuming the div you want to animate has an ID of first
$('#first').click(function() {
  $(this).animate({ height : 'auto' }, 1000);
});

1
아 글쎄, 당신이 해결책을 찾은 것 같습니다. 안전을 $(this)위해 클릭 핸들러 내부에서 계속 사용 합니다.
EMMERICH

10
animate({height: 'auto'})효과가 없습니다. 적어도 jQuery 1.6.4에서는 그렇지 않습니다.
Jānis Elmeris

2

이거 한번 해봐 ,

var height;
$(document).ready(function(){
    $('#first').css('height','auto');
    height = $('#first').height();
    $('#first').css('height','200px');
})

 $("div:first").click(function(){
  $("#first").animate({
    height: height
  }, 1000 );
});

이것은 작동하지 않습니다 var 높이는 ready 함수 내에서 액세스 할 수 있습니다.
meo

준비 함수 전에 높이를 정의하고 var 높이보다 높이 만 사용하십시오. 이런 식으로 다니엘
Prakash

2

BORDER-BOX와 함께 작동하는 것이 있습니다 ...

여러분 안녕하세요. 다음은 동일한 작업을 수행하기 위해 작성한 jQuery 플러그인이지만 다음과 같이 box-sizing설정 했을 때 발생하는 높이 차이를 설명 합니다.border-box .

또한 y 축을 따라 요소를 축소하여 요소를 숨기는 "yShrinkOut"플러그인도 포함했습니다.


// -------------------------------------------------------------------
// Function to show an object by allowing it to grow to the given height value.
// -------------------------------------------------------------------
$.fn.yGrowIn = function (growTo, duration, whenComplete) {

    var f = whenComplete || function () { }, // default function is empty
        obj = this,
        h = growTo || 'calc', // default is to calculate height
        bbox = (obj.css('box-sizing') == 'border-box'), // check box-sizing
        d = duration || 200; // default duration is 200 ms

    obj.css('height', '0px').removeClass('hidden invisible');
    var padTop = 0 + parseInt(getComputedStyle(obj[0], null).paddingTop), // get the starting padding-top
        padBottom = 0 + parseInt(getComputedStyle(obj[0], null).paddingBottom), // get the starting padding-bottom
        padLeft = 0 + parseInt(getComputedStyle(obj[0], null).paddingLeft), // get the starting padding-left
        padRight = 0 + parseInt(getComputedStyle(obj[0], null).paddingRight); // get the starting padding-right
    obj.css('padding-top', '0px').css('padding-bottom', '0px'); // Set the padding to 0;

    // If no height was given, then calculate what the height should be.
    if(h=='calc'){ 
        var p = obj.css('position'); // get the starting object "position" style. 
        obj.css('opacity', '0'); // Set the opacity to 0 so the next actions aren't seen.
        var cssW = obj.css('width') || 'auto'; // get the CSS width if it exists.
        var w = parseInt(getComputedStyle(obj[0], null).width || 0) // calculate the computed inner-width with regard to box-sizing.
            + (!bbox ? parseInt((getComputedStyle(obj[0], null).borderRightWidth || 0)) : 0) // remove these values if using border-box.
            + (!bbox ? parseInt((getComputedStyle(obj[0], null).borderLeftWidth || 0)) : 0) // remove these values if using border-box.
            + (!bbox ? (padLeft + padRight) : 0); // remove these values if using border-box.
        obj.css('position', 'fixed'); // remove the object from the flow of the document.
        obj.css('width', w); // make sure the width remains the same. This prevents content from throwing off the height.
        obj.css('height', 'auto'); // set the height to auto for calculation.
        h = parseInt(0); // calculate the auto-height
        h += obj[0].clientHeight // calculate the computed height with regard to box-sizing.
            + (bbox ? parseInt((getComputedStyle(obj[0], null).borderTopWidth || 0)) : 0) // add these values if using border-box.
            + (bbox ? parseInt((getComputedStyle(obj[0], null).borderBottomWidth || 0)) : 0) // add these values if using border-box.
            + (bbox ? (padTop + padBottom) : 0); // add these values if using border-box.
        obj.css('height', '0px').css('position', p).css('opacity','1'); // reset the height, position, and opacity.
    };

    // animate the box. 
    //  Note: the actual duration of the animation will change depending on the box-sizing.
    //      e.g., the duration will be shorter when using padding and borders in box-sizing because
    //      the animation thread is growing (or shrinking) all three components simultaneously.
    //      This can be avoided by retrieving the calculated "duration per pixel" based on the box-sizing type,
    //      but it really isn't worth the effort.
    obj.animate({ 'height': h, 'padding-top': padTop, 'padding-bottom': padBottom }, d, 'linear', (f)());
};

// -------------------------------------------------------------------
// Function to hide an object by shrinking its height to zero.
// -------------------------------------------------------------------
$.fn.yShrinkOut = function (d,whenComplete) {
    var f = whenComplete || function () { },
        obj = this,
        padTop = 0 + parseInt(getComputedStyle(obj[0], null).paddingTop),
        padBottom = 0 + parseInt(getComputedStyle(obj[0], null).paddingBottom),
        begHeight = 0 + parseInt(obj.css('height'));

    obj.animate({ 'height': '0px', 'padding-top': 0, 'padding-bottom': 0 }, d, 'linear', function () {
            obj.addClass('hidden')
                .css('height', 0)
                .css('padding-top', padTop)
                .css('padding-bottom', padBottom);
            (f)();
        });
};

기본값을 사용하기 위해 내가 사용한 매개 변수를 생략하거나 null로 설정할 수 있습니다. 내가 사용한 매개 변수 :

  • growTo : 모든 계산을 재정의하고 객체가 커질 CSS 높이를 설정하려면이 매개 변수를 사용하십시오.
  • duration : 애니메이션의 길이입니다 ( 분명히 ).
  • whenComplete : 애니메이션이 완료 될 때 실행할 함수입니다.

2

슬라이드 전환 ( Box9의 답변이 확장 됨)

$("#click-me").click(function() {
  var el = $('#first'),
  curHeight = el.height(),
  autoHeight = el.css('height', 'auto').height(),
  finHeight = $('#first').data('click') == 1 ? "20px" : autoHeight;
  $('#first').data('click', $(this).data('click') == 1 ? false : true);
  el.height(curHeight).animate({height: finHeight});
});
#first {width: 100%;height: 20px;overflow:hidden;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="first">
  <div id="click-me">Lorem ipsum dolor sit amet, consectetur adipiscing elit</div>
  Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit,
</div>


1

이 스레드가 오래되었지만이 답변을 게시하고 있습니다. 나에게 맞는 대답을 얻지 못했습니다. 이것은 잘 작동하며 매우 간단합니다.

원하는 각 div의 높이를 데이터에로드합니다.

$('div').each(function(){
    $(this).data('height',$(this).css('height'));
    $(this).css('height','20px');
});

그런 다음 클릭시 애니메이션을 적용 할 때 사용합니다.

$('div').click(function(){
    $(this).css('height',$(this).data('height'));
});

CSS 전환을 사용하고 있으므로 jQuery 애니메이션을 사용하지 않지만 동일한 애니메이션을 수행 할 수 있습니다.


1

데이터 속성에 저장할 수 있습니다.

$('.colapsable').each(function(){
    $(this).attr('data-oheight',$(this).height());
    $(this).height(100);
});

$('.colapsable h2:first-child').click(function(){
    $(this).parent('.colapsable').animate({
            height: $(this).parent('.colapsible').data('oheight')
        },500);
    }
});

본질적으로 Hettler의 한 라이너와 동일하지만 이해하기 쉽습니다.
Timothy Groote

1

한 페이지에 여러 개의 더 많은 영역을 읽으려면이 기능이 필요했습니다.이 문제는 동일한 문제가 발생하는 Wordpress 단축 코드로 구현했습니다.

기술적으로 페이지의 모든 추가 읽기 범위의 높이는 고정되어 있습니다. 그리고 토글을 사용하여 자동 높이로 개별 확장 할 수 있기를 원했습니다. 첫 번째 클릭 : '텍스트 높이의 전체 높이로 확장', 두 번째 클릭 : '기본 높이 70px로 축소'

HTML

 <span class="read-more" data-base="70" data-height="null">
     /* Lots of text determining the height of this span */
 </span>
 <button data-target='read-more'>Read more</button>

CSS

span.read-more {
    position:relative;
    display:block;
    overflow:hidden;
}

따라서 위 data-base의 고정 높이를 설정하는 데 필요한 속성 은 매우 간단 합니다. 그만큼data-height특성 I는 요소의 실제 (동적) 높이를 저장하는데 사용.

jQuery 부분

jQuery(document).ready(function($){

  $.fn.clickToggle = function(func1, func2) {
      var funcs = [func1, func2];
      this.data('toggleclicked', 0);
      this.click(function() {
          var data = $(this).data();
          var tc = data.toggleclicked;
          $.proxy(funcs[tc], this)();
          data.toggleclicked = (tc + 1) % 2;
      });
      return this;
  };

    function setAttr_height(key) {
        $(key).each(function(){
            var setNormalHeight = $(this).height();
            $(this).attr('data-height', setNormalHeight);
            $(this).css('height', $(this).attr('data-base') + 'px' );
        });
    }
    setAttr_height('.read-more');

    $('[data-target]').clickToggle(function(){
        $(this).prev().animate({height: $(this).prev().attr('data-height')}, 200);
    }, function(){
        $(this).prev().animate({height: $(this).prev().attr('data-base')}, 200);
    });

});

먼저 첫 번째와 두 번째 클릭에 clickToggle 함수를 사용했습니다. 두 번째 기능이 더 중요합니다. setAttr_height()모든 .read-more요소의 실제 높이는 페이지로드시base-height 속성 있습니다. 그 후 기본 높이는 jquery css 함수를 통해 설정됩니다.

두 속성을 모두 설정하면 부드러운 방식으로 속성간에 전환 할 수 있습니다. data-base원하는 (고정 된) 높이 로만 변경하고 .read-more 클래스를 자신의 ID로 전환하십시오.

모두 바이올린 FIDDLE 에서 작동하는 것을 볼 수 있습니다

jQuery UI가 필요하지 않습니다


1

원하는 것이 div를 표시하고 숨기는 것이라면이 코드를 사용하면 jQuery 애니메이션을 사용할 수 있습니다. jQuery가 원하는 높이의 대부분을 애니메이션으로 만들거나 0px로 애니메이션하여 애니메이션을 속일 수 있습니다. jQuery는 자동으로 변환하기 위해 jQuery에 의해 설정된 높이가 필요합니다. 따라서 .animate는 .css (height : auto)가 변환하는 요소에 style = ""을 추가합니다.

이 작업을 본 가장 깨끗한 방법은 원하는 높이로 애니메이션을 적용한 다음 자동으로 설정하고 올바르게 수행하면 매우 매끄럽게 보일 수 있습니다. 당신은 당신이 기대하는 것을 지나서 애니메이션 할 수 있으며 다시 돌아올 것입니다. 지속 시간이 0 일 때 0px로 애니메이션하면 요소 높이가 자동 높이로 떨어집니다. 인간의 눈에는 어쨌든 애니메이션으로 보입니다. 즐겨..

    jQuery("div").animate({
         height: "0px"/*or height of your choice*/
    }, {
         duration: 0,/*or speed of your choice*/
         queue: false, 
         specialEasing: {
             height: "easeInCirc"
        },
         complete: function() {
             jQuery(this).css({height:"auto"});
        }
    });

죄송합니다.이 게시물은 오래된 게시물이지만이 게시물을 발견 한 jQuery와 함께이 기능을 원하는 사용자와 관련이 있다고 생각했습니다.


0

나는 내가 찾던 것과 정확하게 어울리는 것을 만들어 냈습니다. 요소의 scrollHeight를 사용하면 DOM에로드 된 때의 높이를 얻을 수 있습니다.

 var clickers = document.querySelectorAll('.clicker');
    clickers.forEach(clicker => {
        clicker.addEventListener('click', function (e) {
            var node = e.target.parentNode.childNodes[5];
            if (node.style.height == "0px" || node.style.height == "") {
                $(node).animate({ height: node.scrollHeight });
            }
            else {
                $(node).animate({ height: 0 });
            }
        });
    });
.answer{
        font-size:15px;
        color:blue;
        height:0px;
        overflow:hidden;
       
    }
 <div class="row" style="padding-top:20px;">
                <div class="row" style="border-color:black;border-style:solid;border-radius:4px;border-width:4px;">
                    <h1>This is an animation tester?</h1>
                    <span class="clicker">click me</span>
                    <p class="answer">
                        I will be using this to display FAQ's on a website and figure you would like this.  The javascript will allow this to work on all of the FAQ divs made by my razor code.  the Scrollheight is the height of the answer element on the DOM load.  Happy Coding :)
                         Lorem ipsum dolor sit amet, mea an quis vidit autem. No mea vide inani efficiantur, mollis admodum accusata id has, eam dolore nemore eu. Mutat partiendo ea usu, pri duis vulputate eu. Vis mazim noluisse oportere id. Cum porro labore in, est accumsan euripidis scripserit ei. Albucius scaevola elaboraret usu eu. Ad sed vivendo persecuti, harum movet instructior eam ei.
                    </p>
                </div>
            </div>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.