Отключить горизонтальную прокрутку



Ok по какой-то причине моя веб-страница прокручивается слева направо и показывает много уродливого пространства.



Я искал результаты, но они просто сделали прокрутки скрытый



это теперь то, что я хочу, я хочу физически отключить функция горизонтальной прокрутки. Я не хочу, чтобы пользователь мог прокручивать слева направо на мою страницу только вверх и вниз!



Я пробовал: overflow-x:hidden в css на моем html тег, но это только полоса прокрутки скрыта и не отключает прокрутку.



пожалуйста, помогите мне!



вот ссылка на страницу:http://www.green-panda.com/usd309bands/ (сломанная ссылка)



Это может дать вам лучшее представление о том, что я говорю о:



это когда загружаются первые страницы:



enter image description here



и это после того, как я прокрутите вправо:



enter image description here

488   11  

11 ответов:

попробуйте добавить это в свой CSS

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

это противный ребенок вашего кода :)

.container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container {
width: 1170px;
}

заменить

.container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container {
width: 100%;
}

поэтому, чтобы исправить это правильно, я сделал то, что делали другие здесь, и использовал css, чтобы скрыть горизонтальную панель инструментов:

.name {
  max-width: 100%;
  overflow-x: hidden;
}

затем в js я создал прослушиватель событий для поиска прокрутки и противодействовал пользователям, которые пытались выполнить горизонтальную прокрутку.

var scrollEventHandler = function()
{
  window.scroll(0, window.pageYOffset)
}

window.addEventListener("scroll", scrollEventHandler, false);

Я видел, что кто-то сделал что-то подобное, но, видимо, это не сработало. Это, однако, работает отлично для меня.

попробуйте это, чтобы отключить прокрутку ширины только для тела весь документ просто является телом body{overflow-x: hidden;}

Я знаю, что это слишком поздно, но в javascript есть подход, который может помочь вам обнаружить, что элемент html witch вызывает горизонтальное переполнение -> появляется полоса прокрутки

вот ссылка на пост на CSS трюки

var docWidth = document.documentElement.offsetWidth;
[].forEach.call(
  document.querySelectorAll('*'),
  function(el) {
    if (el.offsetWidth > docWidth) {
      console.log(el);
    }
  }
);

он может вернуть что-то вроде этого:

<div class="div-with-extra-width">...</div>

тогда вы просто удалите дополнительную ширину из div или установить его в max-width:100%

надеюсь, что это помогает!

Он исправил проблема для меня :]

koala_dev ответил, что это будет работать:

html, body {
   max-width: 100%;
   overflow-x: hidden;
}

и MarkWPiper комментирует, что": - / вызвал прокрутку touch / momentum, чтобы перестать работать на iPhone"

решение для поддержания касания / импульса на iPhone-это добавить эту строку:

    height:auto!important;

вы можете переопределить событие прокрутки тела с помощью JavaScript и сбросить горизонтальную прокрутку до 0.

function bindEvent(e, eventName, callback) {
    if(e.addEventListener) // new browsers
        e.addEventListener(eventName, callback, false);
    else if(e.attachEvent) // IE
        e.attachEvent('on'+ eventName, callback);
};

bindEvent(document.body, 'scroll', function(e) {
    document.body.scrollLeft = 0;
});

Я не советую делать это, потому что это ограничивает функциональность для пользователей с маленькими экранами.

ответ Koala_dev будет работать, но в случае, если вам интересно, это причина, почему он работает:

.
q.html, body {              <--applying this css block to everything in the
                             html code.

q.max-width: 100%;          <--all items created must not exceed 100% of the 
                             users screen size. (no items can be off the page 
                             requiring scroll)

q.overflow-x: hidden;       <--anything that occurs off the X axis of the 
                             page is hidden, so that you wont see it going 
                             off the page.     

.

Я просто должен был справиться с этим сам. Ведь я нашел этот метод самым простым и полезным. Просто добавьте

overflow-x: hidden;

к вашему внешнему родителю. В моем случае это выглядит так:

<body style="overflow-x: hidden;">

вы должны использовать overflow-x потому что если вы используете просто использовать overflow вы также отключаете вертикальную прокрутку, а именно overflow-y

если вертикальная прокрутка по-прежнему отключена, вы можете включить ее явно с помощью:

overflow-y: scroll;

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

Если вы хотите отключить горизонтальную прокрутку по всей ширине экрана, используйте этот код.

element {
  max-width: 100vw;
  overflow-x: hidden;
}

это работает лучше, чем" 100%", потому что он игнорирует родительскую ширину и вместо этого использует видовой экран.

.name 
  { 
      max-width: 100%; 
       overflow-x: hidden; 
   }

применить стиль, или вы можете создать функцию в javaScript чтобы решить эту проблему

Comments

    Ничего не найдено.