2014-11-06 7 views
0

이것은 더미 코드입니다. 내 요구 사항은 내가 마지막으로 li 요소를 클릭 한 다음 hidden div 요소가 표시 될 것입니다. 그러나이를 보려면 scroll해야합니다. id=hello으로 li을 클릭하면 창이 자동으로 해당 div로 스크롤됩니까?CSS/JS를 사용하여 특정 요소로 스크롤하는 방법

첫 번째 기본 설정은 CSS 다음에 JS를 사용하고 jQuery는 사용하지 않습니다.

var ele=document.getElementById('hello'); 
 

 

 
ele.addEventListener("click", function (event) { 
 
    document.getElementById("hidden-div").style.display="block"; 
 
},false);
.fixed-height-div{ 
 
height:120px; 
 
overflow-y:scroll; 
 
} 
 

 
.fixed-height-div > li{ 
 
    background-color:lightblue; 
 
    list-style-type: none; 
 
}
<div class="fixed-height-div"> 
 
    <li>A</li> 
 
    <li>B</li> 
 
    <li>C</li> 
 
    <li>D</li> 
 
    <li>E</li> 
 
    <li>F</li> 
 
    <li>G</li> 
 
    <li id="hello">H 
 
     <div id="hidden-div" style="display:none;"> 
 
      This should be displayed after click<br><br> 
 
      And the scroll should come to this screen. 
 
     </div> 
 
    </li>

+0

를 참조 해주십시오? –

+0

뭐든지. 자동으로 해당 div로 스크롤해야합니다. –

+0

글쎄, 내가 시도 할 첫 번째 일은'hello''li' 안에 간단한 앵커 요소를 넣고'hht' 속성을'#mhHiddenDivsId'로 설정하는 것입니다. JS가 필요 없습니다. –

답변

3

을 당신이 li 요소 이 더 jQuery를 필요로하지의 scrollIntoView 함수를 호출, 숨겨진 사업부를 확장/보여 직후.

function showIt(el_id) { 
    var el = document.getElementById(el_id); 
    el.scrollIntoView(true); 
} 

당신이이 애니메이션 필요하십니까 https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView

+0

CSS를 사용하여 솔루션을 제공 할 수 있습니까? +1 this JS solution –

+0

@ShoaibChikate CSS를 사용하여 div를 스크롤 할 수 있을지 의심 스럽다. div가 스크롤되는 동안 CSS를 사용하여 효과를 줄 수는 있지만. 하지만 실제로 CSS를 사용하여 스크롤 값을 설정할 수는 없습니다. – shinobi

1

당신은 window.location = currentlocation + "#" + id 리디렉션 앵커를 사용하거나, JQuery와 LIB 사용할 수 있습니다 - scrollTo

편집 : 를 내가 jQuery를 할 수 cannnot 읽어 보시기 바랍니다. 이 시도 :

ele.addEventListener("click", function (event) { 
    document.getElementById("hidden-div").style.display="block"; 
    window.location.href = window.location.href + "#hidden-div"; 
},false); 
+0

CSS를 사용하여 솔루션을 제공 할 수 있습니까? +1이 JS 솔루션입니다. –

+0

불행히도 CSS를 사용하는 솔루션이 없습니다. – bemol

0
var ele=document.getElementById('hello'); 
ele.addEventListener("click", function (event) { 
    document.getElementById("hidden-div").style.display="block"; 
    var top = this.offsetTop; 
    this.parentNode.scrollTop += top; //Container div scroll 
    document.body.scrollTop += top; //Body scroll 
},false); 
관련 문제