Отключить горизонтальную прокрутку
Ok по какой-то причине моя веб-страница прокручивается слева направо и показывает много уродливого пространства.
Я искал результаты, но они просто сделали прокрутки скрытый
это теперь то, что я хочу, я хочу физически отключить функция горизонтальной прокрутки. Я не хочу, чтобы пользователь мог прокручивать слева направо на мою страницу только вверх и вниз!
Я пробовал: overflow-x:hidden в css на моем html тег, но это только полоса прокрутки скрыта и не отключает прокрутку.
пожалуйста, помогите мне!
вот ссылка на страницу:http://www.green-panda.com/usd309bands/ (сломанная ссылка)
Это может дать вам лучшее представление о том, что я говорю о:
это когда загружаются первые страницы:

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

11 ответов:
это противный ребенок вашего кода :)
.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