Скрыть горизонтальную полосу прокрутки, но сохранить функцию прокрутки - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть контейнер с некоторым текстом, который имеет определенную ширину (меньше, чем содержимое), я хочу добавить горизонтальную прокрутку, но полоса прокрутки должна быть скрыта.

Вот скрипка того, что я пробовал: https://jsfiddle.net/ehp3qnty/576/

.parent {
  width: 400px;
  height: 200px;
  border: 1px solid #aaa;
  overflow: hidden;
}

.child {
  height: 100%;
  margin-bottom: -50px;
  /* maximum width of scrollbar */
  padding-bottom: 50px;
  /* maximum width of scrollbar */
  overflow-y: hidden;
  overflow-x: scroll;
}

p {
  white-space: nowrap;
}
<div class="parent">
  <div class="child">
    <p>
      Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
      sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
      rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
      At vero eos et accusam et justo duo dolores et ea rebum.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
      sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
      rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
      At vero eos et accusam et justo duo dolores et ea rebum.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
      sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
      rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
      At vero eos et accusam et justo duo dolores et ea rebum.
    </p>
  </div>
  <!-- .child -->
</div>
<!-- .parent -->

Но я не могу прокрутить на мобильном устройстве, проводя вправо и влево или на рабочем столе, также колесо не работает.

Так как скрыть горизонтальную полосу, но сохранить эти функции?

Решение должно быть совместимо с большинством браузеров и без использования каких-либо библиотек, просто чистый CSS / JS.

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

В вашем случае используйте:

.child::-webkit-scrollbar {
    height: 10px;
}
0 голосов
/ 12 ноября 2018

Код CSS поможет вам

              .parent {
               width: 400px;
               height: 200px;
               border: 1px solid #aaa;
               overflow:auto;
               overflow-y: hidden;
                  }

              .child {
                height: 100%;
                margin-bottom: -50px;
                /* maximum width of scrollbar */
                   padding-bottom: 50px;
                 /* maximum width of scrollbar */

                    }

                    p {
                   white-space: nowrap;
                     }
0 голосов
/ 12 ноября 2018

Вы можете использовать это, чтобы изменить CSS полосы прокрутки:)

/* width */
::-webkit-scrollbar {
    width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
    background: #f1f1f1; 
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #888; 
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #555; 
}

То, что вы, вероятно, хотите сделать, выглядит примерно так:

.child::-webkit-scrollbar {
    height: 10px;
}

Или (чтобы сделать этосупер ненавязчивый, не скрывая полностью):

.child::-webkit-scrollbar {
    height: 1px;
}

РЕДАКТИРОВАТЬ: ваш пример JSFiddle также отлично работает в моем браузере (Google Chrome на MacOSX) и на моем мобильном Safari, Iphone X (последняя версия)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...