У меня есть страница, в которой навигатор (заголовок) является постоянным, а полоса прокрутки перемещается, а фон перемещается вместе со строкой прокрутки. В то же время текст внутри тела скрыт под навигационной панелью. Фон распространен как для навигации, так и для текста. Я хочу сделать это, я хочу переместить текст внутри "static-container" в iframe. Возможно ли работать со строкой прокрутки iframe и главной страницы одновременно? В скрипке, которую я опубликовал, есть вертикальная полоса прокрутки только для текста. Могу ли я получить его для всей страницы (одна полоса прокрутки)?
//code $(document).ready(function() {
$(".content").scroll(function() {
$("body").css("background-position", "0 -" + $(this).scrollTop() + "px");
}); });
Я точно не знаю, что вам нужно, но у меня есть ключ. Если я прав, вы хотите изменить static-container
div в iframe
. Некоторая часть для простой части. Если я все еще прав, если содержимое прокрутки iframe должно действительно прокручивать главную страницу?
Там один или два способа сделать это:
Я собираюсь предоставить решение для вариантов 1
и 2
.
сначала переделайте свой div
в iframe
.
//HTML
<iframe onload="detectIframeCompletion()" src="/" id="static_container" class="static-container" frameborder=0 seamless="true" sandbox="allow-same-origin" style="width:100%;height:auto">
бесшовные позволяет iFrame иметь прозрачный фон, течет с документом. чтобы вы могли использовать страницы из одного и того же доверенного источника. Помните, что вы не можете выполнять междоменные звонки. Это приведет к отказу доступа.
Во-вторых, вам нужно кодировать, чтобы обнаружить, когда страница завершила загрузку.
function detectIframeCompletion()
{
var elementIframe = document.getElementById("static_container");
//Now access the iframe document via: contentDocument > documentElement (HTML-tag) > scrollHeight
document.getElementById("static_container").style.height = elementIframe.contentDocument.documentElement.scrollHeight + "px";
}
Кроме того, мне действительно нужно подчеркнуть, что это решение работает только со статическим контентом. Когда содержимое страницы iframe изменяется, высота iframe должна быть скорректирована одинаково.
Пожалуйста, проигнорируйте все JavaScript из опции 1. Просто добавьте этот CSS в свой CSS.
.content {
top:65px;
overflow: hidden;
bottom: 0px;
width: 100%;
position: fixed;
}
.content > iframe {
height: 100%;
width : 100%;
}
Это добавит только прокрутку в iframe, когда содержимое iframe будет переполнено.
Используйте параметр 1
когда вам нужно добавить контент ниже iframe, и вы хотите только одну полосу прокрутки. Используйте опцию 2
когда весь контент загружается в iframe.
Наиболее важные уроки из этого ответа:
Seamless
(или наследственные allowtransparency), чтобы сделать поток iframe с документомsandbox
для включения содержимого (из одного источника) для доступа.px
.Примечание: только браузер с поддержкой HTML5 сможет сделать это правильно. Для майоров: IE9+, Firefox и Chrome.