Создание элементов с различными типами позиций прокручивается вместе - PullRequest
2 голосов
/ 24 ноября 2011

По сути, я пытаюсь создать веб-страницу, которая использует jquery для вставки нового контента.я начал использовать этот учебник.http://www.queness.com/resources/html/scroll/horizontal.html

Теперь из-за того, что я потратил несколько часов, пытаясь найти способ решить эту проблему ... я считаю, что это может быть проще объяснить с помощью рисунка .. Layout image

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

Теперь моя веб-страница немного отличается тем, что я увеличил размеры блоков. Это означает, что поля «содержимого» (см. диаграмму) расположены на нижней части страницы.

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

Я использовал ответ на этот вопрос: Скрыть htmlгоризонтальная, но не вертикальная полоса прокрутки , чтобы установить overflow-y: scroll и overflow-x: hidden, которые, как мне кажется, позволяют мне прокручивать вверх и вниз, не компрометируя блоки содержимого по обе стороны от просматриваемой. но когда она прокручивается,содержимое переходит на логотип ..

Вопрос: я хочу, чтобы логотип перемещался вертикально вместе с полем с содержимым, чтобы они не перекрывали друг друга,НО я хочу держать логотип в верхней части, когда пользователь нажимает на другое поле ... когда пользователь нажимает на ссылку и другое поле содержимого вставляется, логотип остается над первым полем содержимого.Я думал о том, чтобы над каждым блоком контента был логотип, но это выглядело бы неприлично ... и я хотел сделать так, чтобы контент проскальзывал внутрь / наружу ..

Что я пробовал: Я попытался сделать положение логотипа: относительное.логотип перемещается вверх и вниз, но я не уверен, как не дать ему выйти из поля зрения (т. е. на диаграмме, если в этом сценарии логотип был над содержимым1, при щелчке по содержимому 2 вставляется контент2, а логотип скрывается вместе с контентом1)

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

Извините за очень длинный вопрос. Я ценю время, которое вы потратили на его чтение, и если вы сможете пролить свет на это, это было бы очень полезно .. Спасибо:)

Редактировать для Sohnee: После игры на jsfiddle, которую вы сделали ... кажется, она решает половину проблемы .. в основном она отлично скользит (в моем коде и на jsскрипка) так что спасибо тебе за это.но у меня все еще есть проблемы с прокруткой .. я использую safari и когда вы впервые загружаете страницу (мой код и ваш код jsfiddle), вы не видите никаких полос прокрутки .. (даже если высота содержимого установлена ​​на что-то вроде 6 / 700px) поэтому, когда я нажимаю в правом нижнем углу, как будто я собираюсь изменить размер окна браузера (я едва перемещаю его на пиксель), полоса прокрутки появляется точно в том месте, где я хочу, и это позволяет мне прокручивать страницу вертикальнои на скользящую функцию, похоже, тоже не влияет, что хорошо.но как только я обновлю страницу .. полоса прокрутки исчезнет ... может быть, есть возможность прокрутить полосу прокрутки такого типа при загрузке страницы и сохранить ее там?

(полоса прокрутки также появляется при увеличении масштаба)один раз, а затем уменьшить один раз)

я включил скриншоты, чтобы объяснить, что я имею в виду ..

до: original

после (изменение размера окна только на пиксель): after resizing

Вы заметите, что я переместил полосу прокрутки вниз, и она перемещает логотип и контент по вертикали синхронно ... Есть ли способ достичь этого?(По сути, вы хотите иметь возможность прокручивать логотип и контент по вертикали, не допуская горизонтального перемещения логотипа при использовании функции слайда) (извините, что продолжаю беспокоить вас)

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Вы уже почти с этим, на данный момент у вас есть логотип, включенный в область прокрутки (я думаю, что вы используете фактический элемент body для прокрутки.

Если вы окружаете свою прокручиваемую "биты »с контейнером, таким как div, и примените все, что вы сделали к этому div, а не ко всему документу, ваш логотип не будет затронут ...

Например,в псевдо-код

<body>
    <logo>
    <content1>
    <content2>
    <content3>
</body>

Изменится на

<body>
    <logo>
    <div id="scroller">
        <content1>
        <content2>
        <content3>
    </div>
</body>

И теперь вы измените $('body') на $('#scroller').

Я создал JS Fiddle на основена исходном примере, чтобы показать это в действии.

http://jsfiddle.net/Sohnee/QB5hd/

0 голосов
/ 24 ноября 2011

Возможно, вам понадобится ввести еще один div (скажем, d1), который будет оборачиваться вокруг логотипа и div (скажем, d2), который содержит ваши блоки динамического содержимого. Теперь, если вы установите overflow-y: scroll и overflow-x: скрытый для этого d1, это должно сохранить их вместе.

...