Ответ 1
Я просто столкнулся с этой проблемой и обнаружил, что исправление заключалось в установке overflow: hidden
в теге HTML страницы внутри iframe
.
У меня есть iframe
на www.example.com, который указывает на support.example.com(который является CNAME для иностранного домена).
Я автоматически изменяю размер моего iframe так, чтобы кадр не нуждался в каких-либо полосах прокрутки для отображения содержащейся веб-страницы.
В Firefox и IE это отлично работает, нет полосы прокрутки, так как я использую <iframe ... scrolling="no"></iframe>
. Тем не менее, в браузерах веб-браузера (Safari и Chrome) вертикальная полоса прокрутки сохраняется даже тогда, когда имеется достаточно места для страницы без полосы прокрутки (полоса прокрутки выделена серым цветом).
Как скрыть панель прокрутки для веб-браузеров?
Я просто столкнулся с этой проблемой и обнаружил, что исправление заключалось в установке overflow: hidden
в теге HTML страницы внутри iframe
.
Вы можете скрыть полосы прокрутки и сохранить функциональность прокрутки (с помощью сенсорной панели или колесика прокрутки или коснуться и перетащить на мобильный телефон или планшет, используя:
<style>
iframe::-webkit-scrollbar {
display: none;
}
</style>
Очевидно, вы можете изменить iframe на то, что соответствует вашему дизайну, и вы можете добавить эквивалентное свойство -mozilla-свойство, чтобы оно также работало в firefox.
Note: this is useful if you cannot edit the CSS / HTML of the iFramed content.
Это немного взломать, но я решил эту проблему, обернув <iframe>
в <div>
, установив высоту, ширину и overflow:hidden
<div>
, а затем установив ширину и высоту <iframe>
на самом деле переполняет упаковку <div>
.
<style>
div {height:100px;width:100px;overflow:hidden}
iframe {height:150px;width:150px;overflow:hidden}
</style>
<div>
<iframe src="foo.html" scrolling="no"></iframe>
</div>
Надеюсь, что это поможет.
Я предполагаю, что вы пробовали это, но не указали ли вы прокрутку на iframe?
<iframe scrolling="no">
Чтобы избавиться от серых полос прокрутки, поставьте "overflow: hidden"; на теге тела страницы, отображаемой в Iframe, например. <body style="overflow:hidden;">
Это работало отлично для меня в Chrome 8.0.552.215, и у меня также был "переполнение: скрыто" на самом Iframe
Помогает ли это? Работает на Chrome, IE, FF...
<style type="text/css">
html { overflow:hidden; }
#test { position:absolute; top:50; left:50; right:50; bottom:50; height:2000px; }
</style>
<body scroll="no">
<div id="test">content</div>
</body>
Можете ли вы установить свойство overflow-y
CSS для IFRAME на visible
или hidden
?
проверьте, действительно ли свиток из iframe, возможно, это из HTML или BODY.
Для прокрутки в iframe
<iframe scrolling="no">
В css
iframe { overflow:hidden; }
or
iframe { overflow-x:hidden; overflow-y:hidden}
Я просто решил это в своем блоге с прокруткой = "нет" после тега стиля.
например:
iframe src="asdf.html" style="overflow: hidden;" scrolling="no"
Я оставил атрибут стиля там, потому что он более правильный, и он отлично работал на Firefox.
Использование бета-версии Chrome 8.0.552.224 под Ubuntu 10.10 пока еще показывает полосы прокрутки призраков на этом сайте: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_iframe_scrolling. Я пробовал все трюки, которые работают во всех браузерах, но не в браузере на основе WebKit. Поэтому ошибка не полностью фиксируется.
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
это работает, никто из других, похоже, не работал, включая e.preventDefault()
для touchstart.
Попробуйте это...
iframe { overflow:hidden; }
не использовать прокрутку тега на всех в iframe и добавлять стиль как стиль = "переполнение-х: скрытый; переполнение-у: авто;" это приведет к удалению горизонтальной прокрутки, и она должна работать и наоборот.
-Jai
Настройка атрибута прокрутки iframe на "no" должна исправить это, но в webkit появляется ошибка: https://bugs.webkit.org/show_bug.cgi?id=29240
Tim work-around (Safari/Chrome (Webkit) - не удается скрыть вертикальную полосу прокрутки iframe), кажется, исправляет проблему - , пока у вас есть возможность редактировать документ, содержащийся в iframe...
скрывать прокрутку iframe в теге body chrome put, подобном этому
<body style="margin:0px; padding:0px; overflow:hidden;"></body>
<iframe> <body style="overflow-x: hidden"> </body> </iframe>
1. Когда вы меняете прокрутку iframe yes или no, панель прокрутки iframe не отображается сразу, вы должны обновить iframe.
2. переполнение переполнения html в iframe colud влияет на панель прокрутки iframe
3. В IE вы должны очистить iframe src, а затем обновить iframe, это будет работа
4.so, покажите вам код
HTML
<iframe id="main_ifrm" class="main" frameborder="0" scrolling="no" src="new.html" ></iframe>
<button id="btn1">scrolling yes</button>
Javascript
var ifrm = document.getElementById("main_ifrm");
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){
$(ifrm).prop("scrolling","no");
$(ifrm.contentWindow.document).find("html").css("overflow","hidden")
var src = $(ifrm).prop("src");
$(ifrm).prop("src","");
$(ifrm).prop("src",src);
}