½ºÅ©·Ñ¹Ù Á¦¾î¿Í ½ºÅ©·Ñ¹Ù ¼û±â±â¿¡ ´ëÇؼ ¾Ë¾Æº»´Ù.½ºÅ©·Ñ¹Ù Á¦¾îelememt.scrollIntoView() ¸í·ÉÀ¸·Î ÇØ´ç À§Ä¡·Î À̵¿ ÇÒ¼ö ÀÖ´Ù.scrollIntoView(true)À̸é topÀ» ±âÁØÀ¸·Î Á¤·ÄÀÌ µÈ´Ù. scrollIntoView(false)À̸é bottomÀ» ±âÁØÀ¸·Î Á¤·ÄÀÌ µÈ´Ù. <div id="scrolltest">
<div id='0'>0</div> <div id='1'>1</div> <div id='2'>2</div> <div id='3'>3</div> <div id='4'>4</div> <div id='5'>5</div> <div id='6'>6</div> <div id='7'>7</div> <div id='8'>8</div> <div id='9'>9</div> <div id='10'>10</div> <div id='11'>11</div> <div id='12'>12</div> <div id='13'>13</div> <div id='14'>14</div> <div id='15'>15</div> <div id='16'>16</div> <div id='17'>17</div> <div id='18'>18</div> <div id='19'>19</div> </div> 5¹ø ¶óÀÎÀ» º¸°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ÁØ´Ù. document.getElementById('20').scrollIntoView(true) ´Ù¿î·Îµå ÆäÀÌÁö ¿¹Á¦¿¡¼ 'w'Å°¸¦ ´©¸£¸é À§·Î ½ºÅ©·Ñ, 's'Å°¸¦ ´©¸£¸é ¾Æ·¡·Î ½ºÅ©·Ñ µÈ´Ù. <scrollIntoView·Î ½ºÅ©·Ñ Á¦¾î> var view = getElement(listname);
var itemHeight = getElement(index).offsetHeight; if(isUp === false) { var scrollEnd = view.scrollTop + view.clientHeight; var curPos = (index+1) * itemHeight; if(curPos > scrollEnd) getElement(index).scrollIntoView(faslse); } else { var scrollStart = view.scrollTop; var curPos = (index) * itemHeight; if(curPos <= scrollStart) getElement(index).scrollIntoView(true); } scrollIntoView( ) ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í scrollTop·Î À̵¿ ÇÒ·Á¸é ´ÙÀ½°ú °°ÀÌ ¹Ù²Ü¼ö ÀÖ´Ù. <scrollTopÀ¸·Î ½ºÅ©·Ñ Á¦¾î> var scrollList = function(oldIndex, curIndex) {
var view = getElement(listname); var itemHeight = getElement(curIndex).offsetHeight; var gap = (curIndex+1)*itemHeight - view.scrollTop; var move = curIndex - oldIndex; if((move > 0 && gap > view.offsetHeight) || (move < 0 && gap - itemHeight < 0)) view.scrollTop = view.scrollTop+(itemHeight)*move; } ¾Æ·¡·Î ½ºÅ©·Ñ ÇÒ¶§ ¾Èº¸À̸é getElement(index).scrollIntoView(faslse) ¸í·ÉÀ» »ç¿ëÇÑ´Ù. À§·Î ½ºÅ©·Ñ ÇÒ¶§ ¾Èº¸À̸é getElement(index).scrollIntoView(true) ¸í·ÉÀ» »ç¿ëÇÑ´Ù. º¸ÀÌ´ÂÁö ¾Èº¸ÀÌ´ÂÁö °Ë»çÇϱâ À§ÇØ ºÎ¸ð ¿ä¼ÒÀÇ scrollTop°ú clientHeight°ªÀÌ ÇÊ¿äÇÏ´Ù. ½ºÅ©·ÑÀÌ µÇ¸é ÀÚ½ÄÀÇ À§Ä¡ °ªÀº º¯ÇÏÁö ¾Ê´Â´Ù. ºÎ¸ð ¿ä¼ÒÀÇ scrollTop °ªÀÌ º¯ÇÑ´Ù. ¾ÆÀÌÅÛ ¿ä¼ÒÀÇ ³ôÀÌ´Â offsetHeight·Î Á¤ÇÑ´Ù. ¾Æ·¡·Î ½ºÅ©·Ñ ÇÒ¶§ ÀÚ½Ä À妽ºÀÇ bottom ÁÂÇ¥°¡ view.scrollTop + view.clientHeight °ªÀ» ³Ñ¾î°¡´ÂÁö °Ë»çÇÑ´Ù. bottom ÁÂÇ¥¶ó curPos = (index+1) * itemHeightÀÌ´Ù. À§·Î ½ºÅ©·Ñ ÇÒ¶§´Â ÀÚ½Ä À妽ºÀÇ top ÁÂÇ¥°¡ scrollTop ÁÂÇ¥º¸´Ù ÀÛÀºÁö °Ë»çÇÑ´Ù. offsetHeight, clientHeight¿¡ ´ëÇÑ ¾Æ·¡ À̹ÌÁö¸¦ Âü°í ÇÑ´Ù. À̹ÌÁö Ãâó https://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively ½ºÅ©·Ñ¹Ù ¾ø¾Ö±â¹æ¹ý1) width°ªÀ» 110%·Î ÁöÁ¤ÇÏ¿© ½ºÅ©·Ñ¹Ù ¼û±â±â
#maincontainer { overflow: hidden }
#childcontainer { width: 110%; overflow: auto; } #maincontainer : overflow°ªÀ» "hidden"À¸·Î ÁöÁ¤ÇÏ¸é ºÎ¸ð ¿µ¿ªÀ» ¹þ¾î³ª´Â ºÎºÐÀº ¼û±ä´Ù. #childcontainer: overflow°ªÀ» "auto"·Î ÁöÁ¤ÇÏ¸é ºÎ¸ð ¿µ¿ªÀ» ¹þ¾î³ª´Â ÀÚ½ÄÀº ¼û±ä´Ù. ³»¿ëÀÌ Â÷¸é ½ºÅ©·Ñ¹Ù°¡ »ý±ä´Ù. ¿©±â¼ width°ªÀÌ 110%°¡ µÇ¸é ºÎ¸ðÀÇ width º¸´Ù Å©Áö±â ¶§¹®¿¡ ½ºÅ©·Ñ¹Ù°¡ hide µÈ´Ù. //style ºÎºÐ
#maincontainer { position: absolute; display: block; background: orange; width:200px; height:200px; overflow:hidden; } #childcontainer { position: absolute; display: block; background: yellow; width: 110%; height:200px; overflow:auto; } .selectElement { background-color: pink; } //body ºÎºÐ <div id="maincontainer"> <div id="childcontainer"> <div id='0'>0</div> <div id='1'>1</div> <div id='2'>2</div> <div id='3'>3</div> <div id='4'>4</div> <div id='5'>5</div> <div id='6'>6</div> <div id='7'>7</div> <div id='8'>8</div> <div id='9'>9</div> <div id='10'>10</div> <div id='11'>11</div> <div id='12'>12</div> <div id='13'>13</div> <div id='14'>14</div> <div id='15'>15</div> <div id='16'>16</div> <div id='17'>17</div> <div id='18'>18</div> <div id='19'>19</div> </div> </div> ¹æ¹ý2) webkit-scrollbar·Î ½ºÅ©·Ñ¹Ù ¼û±â±â"::-webkit-scrollbar" ¿É¼ÇÀ» »ç¿ëÇØ ½ºÅ©·Ñ¹Ù¸¦ ¼û±æ¼ö ÀÖ´Ù.ÀÌ ¿É¼ÇÀº Å©·Ò¿¡¸¸ ȣȯ¼ºÀÌ ÀÖ´Ù. ºÎ¸ð°¡ ÇÊ¿ä¾ø¾î¼ HTMLÀÌ °£´ÜÇØÁø´Ù. ::-webkit-scrollbar { display: none; } //style ºÎºÐ
::-webkit-scrollbar { display: none; } #childcontainer { position: absolute; display: block; background: yellow; width: 110%; height:200px; overflow:auto; } #scrolltest { position: absolute; display: block; background: yellow; width: 200px; height:200px; overflow:auto; } .selectElement { background-color: pink; } //body ºÎºÐ <div id="scrolltest"> <div id='0'>0</div> <div id='1'>1</div> <div id='2'>2</div> <div id='3'>3</div> <div id='4'>4</div> <div id='5'>5</div> <div id='6'>6</div> <div id='7'>7</div> <div id='8'>8</div> <div id='9'>9</div> <div id='10'>10</div> <div id='11'>11</div> <div id='12'>12</div> <div id='13'>13</div> <div id='14'>14</div> <div id='15'>15</div> <div id='16'>16</div> <div id='17'>17</div> <div id='18'>18</div> <div id='19'>19</div> </div> Focus ¾øÀÌ ½ºÅ©·Ñ Çϱâ'w' Å°¸¦ ´©¸£¸é À§·Î ½ºÅ©·Ñ, 's' Å°¸¦ ´©¸£¸é ¾Æ·¡·Î ½ºÅ©·Ñ ÇÑ´Ù. var onKeyDown = function(e) {
var view = document.getElementById(listname); var scrollHeight = view.scrollHeight; var height = view.clientHeight; var pos = view.scrollTop; if(e.keyCode === 'W'.charCodeAt(0)) { pos -= scrollStride; if(pos < 0) pos = 0; } else if(e.keyCode === 'S'.charCodeAt(0)) { pos += scrollStride; if(pos > (scrollHeight - height)) pos = scrollHeight - height; } view.scroll(0, pos); } ¹®ÀÚ¿ ½ºÅ©·Ñ ÇϱâFocus ¾øÀÌ ½ºÅ©·Ñ Çϱ⸦ ¼öÁ¤ÇÑ´Ù.¿©·¯ ¶óÀÎÀÇ div ÅÂ±× ´ë½Å ¸ÖƼ ¶óÀÎ ¹®ÀÚ¿À» Ãß°¡ ÇÒ°ÍÀÌ´Ù. ¹®ÀÚ¿ÀÇ °³Çà ¹®ÀÚ¸¦ <br> ű׷Πº¯È¯ÇØ¾ß ¹®ÀÚ¿ÀÌ ÁٹٲÞÀÌ µÈ´Ù. ¾Ö±¹°¡ ¹®ÀÚ¿À» ½ºÅ©·Ñ ÇÑ´Ù. string replace ÇÔ¼öÀÇ Á¤±Ô½ÄÀ» ÀÌ¿ëÇØ <br> ű׷Πº¯È¯ÇÏ°í ÀÖ´Ù. let str =
`1. µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼. ¹«±ÃÈ »ïõ¸® È·Á°»ê ´ëÇÑ »ç¶÷, ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. 2. ³²»ê À§¿¡ Àú ¼Ò³ª¹«, ö°©À» µÎ¸¥ µí ¹Ù¶÷¼¸® ºÒº¯ÇÔÀº ¿ì¸® ±â»óÀϼ¼. ¹«±ÃÈ »ïõ¸® È·Á°»ê ´ëÇÑ »ç¶÷, ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. 3. °¡À» ÇÏ´Ã °øÈ°Çѵ¥ ³ô°í ±¸¸§ ¾øÀÌ ¹àÀº ´ÞÀº ¿ì¸® °¡½¿ ÀÏÆí´Ü½ÉÀϼ¼. ¹«±ÃÈ »ïõ¸® È·Á°»ê ´ëÇÑ »ç¶÷, ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. 4. ÀÌ ±â»ó°ú ÀÌ ¸¾À¸·Î Ã漺À» ´ÙÇÏ¿© ±«·Î¿ì³ª Áñ°Å¿ì³ª ³ª¶ó »ç¶ûÇϼ¼. ¹«±ÃÈ »ïõ¸® È·Á°»ê ´ëÇÑ »ç¶÷, ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. `; str = str.replace(/(?:\r\n|\r|\n)/g, '<br>'); document.getElementById('text_id').innerHTML = str; } ´Ù¿î·Îµå: (focuse Æ÷ÇÔ ½ºÅ©·Ñ) width°ªÀ» 110%·Î ÁöÁ¤ÇÏ¿© ½ºÅ©·Ñ¹Ù ¼û±â±â : scrollbar_test1.html (focus Æ÷ÇÔ ½ºÅ©·Ñ) webkit-scrollbar·Î ½ºÅ©·Ñ¹Ù ¼û±â±â : scrollbar_test2.html (focus Æ÷ÇÔ ½ºÅ©·Ñ) scrollTopÀ¸·Î ½ºÅ©·Ñ Çϱâ : scrollbar_test3.html focus ¾øÀÌ ½ºÅ©·Ñ Çϱâ : scrollbar_test22.html ¹®ÀÚ¿ ½ºÅ©·Ñ Çϱâ : scrollbar_string.html ÂüÁ¶) https://stackoverflow.com/questions/16670931/hide-scroll-bar-but-while-still-being-able-to-scroll https://www.zerocho.com/category/JavaScript/post/5aa23cd4e70ee8001bc60b9a |