Это является ссылкой, которую я использовал, в которой объясняется, как скрывать прокрутку div с помощью скрытой полосы прокрутки. Единственное различие заключается в том, что у меня есть вложенные div. Проверьте мой fiddle
HTML:
<div id="main">
<div id="sub-main">
<div id="content">
<div id="item-container">
<div class="item">a</div>
<div class="item">b</div>
<div class="item">c</div>
</div>
</div>
</div>
</div>
CSS
#main {
width: 500px;
height: 500px;
}
#sub-main {
width: 500px;
height: 500px;
overflow: hidden;
}
#content {
background-color: red;
width: 500px;
height: 500px;
overflow: auto;
}
#item-container {
width: 1500px;
height: 500px;
}
.item {
width: 500px;
height: 500px;
font-size: 25em;
text-align: center;
float: left;
}
Как и выше, у меня есть переполненный горизонтальный div, и я хочу скрыть его полосу прокрутки. Я должен сделать это еще прокручиваемым, потому что $.scrollTo()
не будет работать иначе.
UPDATE:
Я прочитал все ответы, но я до сих пор не решил свою проблему и не знаю, что ее вызывает. Это жизнь, которая имеет проблемы. В основном, я стараюсь придерживаться этого почти точно так же, но должна быть причина, по которой мой сайт работает не так, как ожидалось. Есть две проблемы.
- Когда я устанавливаю
overflow: hidden
в родительский контейнер прокручиваемых элементов, я не могу прокручивать (собственные функции прокрутки javascript тоже не работают). - Я хочу прокрутить только переполненный контейнер, а не все окно. Это можно сделать, установив цель в
$.localScroll({ target: '#projects-content' })
, но ничто не прокручивается, когда я устанавливаю цель. Если я этого не сделаю, прокрутка работает до тех пор, покаoverflow:hidden
не применяется. Опять же, любая помощь будет принята с благодарностью.
HTML:
<div id="projects"> <!-- start of entire projects page -->
<div id="project-sidebar">
<a href="#project-first">
<div class="sidebar-item sidebar-first">first</div>
</a>
<a href="#project-second">
<div class="sidebar-item sidebar-second">second</div>
</a>
<a href="#">
<div class="sidebar-item sidebar-third">third</div>
</a>
</div>
<div id="project-content"> <!-- this must be the scrollable itmes' container, not the entire window -->
<div id="project-first" class="project-item">
<!-- these items should be scrollable -->
<div class="project-subitem" id="first-sub1">
<a href='#first-sub2' class='next'>next</a>
</div>
<div class='project-subitem' id='first-sub2'>
<a href='#first-sub1' class='prev'>prev</a>
</div>
<!-- end of scrollable items -->
</div>
</div> <!-- end of scroll scroll container -->
</div> <!-- end of entire projects page -->
<script>
// FIXME: when I set target, nothing scrolls.
// But I don't want the entire window to scroll
$('#projects').localScroll({
//target: '#project-content',
hash: false
});
</script>
CSS
#project-content {
width: 80%;
height: 100%;
position: relative;
float: left;
}
#project-sidebar {
float: left;
width: 20%;
height: 100%;
}
.project-item {
width: 300%;
height: 100%;
}
.project-subitem {
height: 100%;
width: 33.33%;
position: relative;
float: left;
}
Update:
После добавления overflow:scroll
в #project-content
прокрутка работает, как и ожидалось. Все, что мне нужно сейчас, это заставить полосы прокрутки исчезнуть в #project-content
. Я попробовал добавить overflow:hidden
к своему родителю, но не имел успеха. Я также попытался добавить его в html, body
, но тогда весь документ отказывается принимать любые прокрутки, такие как scrollTop()
.
Любая помощь будет принята с благодарностью!