2016-06-30 3 views
0

div 내 요소로 스크롤하고 div에 세로로 가운데에 놓으려고합니다.javascript로 div 내 요소를 세로로 가운데에 맞 춥니 다

나는 이것을 시도했지만 행운은이 code입니다.

jQuery(document).on('click', '#scroll_button', function(e) { 
    var el = $("#scroll_test"); 
    var elOffset = el.offset().top; 
    var elHeight = el.height(); 
    var windowHeight = $("#editor").height(); 
    var offset; 

    if (elHeight < windowHeight) { 
     offset = elOffset - ((windowHeight/2) - (elHeight/2)); 
    } 
    else { 
     offset = elOffset; 
    } 

    jQuery('#editor').animate({ 
     scrollTop: $("#scroll_test").offset().top 
    }, 1000); 
}); 

나는 example을 사용하고 있지만, 피들 당 작동하지 않습니다. 스크롤은 요소가 홀딩 요소의 상단에있는 위치를 가져옵니다. 나는 수직 중심에두고 싶다.

또한 jQuery를 사용하여 요소의 높이를 얻는 것이 부정확하고 순수한 js를 사용해야한다는 것을 알게되었지만 그와 같은 행운은 없었습니다. also.

원래 this 질문에서 시작되었습니다.

답변

1
jQuery('#editor').animate({ 
    scrollTop: offset 
    }, 1000); 
}); 

조건부 offset 값을 잊어 버렸습니다.

+1

예, @gnCupo가 나를 이겼습니다. 다음은 [업데이트 된 바이올린]입니다 (https://jsfiddle.net/maneeshchiba/13jex6p5/1/). – Maneesh

관련 문제