2014-08-29 2 views
1

У меня есть div на моей странице (назовем его div A), который равен position:fixed, и все в порядке. Однако внутри этого div у меня есть несколько других div (давайте назовем их divs 1, 2 & 3), которые я хочу переместить, поскольку посетитель использует полосу прокрутки.Переместить div с полосой прокрутки внутри фиксированного div

Как я могу определить divs 1, 2 & 3, чтобы следовать за полосой прокрутки?

HTML:

<section class="block"> 
    <div class="full-width blue"> 
    </div> 

    <div class="full-width green"> 
    </div> 

    <div class="full-width orange"> 
    </div> 
</section> 

CSS:

.block{ 
    width: 300px; 
    height: 104px; 
    position: fixed; 
    left: 1em; 
    top: 1em; 
    z-index: 999; 
} 

.full-width класс просто рассказывает дивы запустить полную ширину своего контейнера.

+0

любой образец кода? – Sbpro

+0

Не могли бы вы разместить изображение желаемого результата? –

+0

@FFrewin Пример кода теперь добавлен. – Toby

ответ

2

Нечто подобное ?:

HTML

<section class="block"> 
    <div class="full-width blue"> 
    </div> 

    <div class="full-width green"> 
    </div> 

    <div class="full-width orange"> 
    </div> 
</section> 

CSS

.block{ 
    width: 300px; 
    height: 104px; 
    position: fixed; 
    left: 1em; 
    top: 1em; 
    z-index: 999; 
    background-color: #CCC; 
    overflow-y: hidden; 
    overflow-x: scroll; 
    white-space: nowrap; 

} 
.full-width { 
    display: inline-block; 
    width: 300px; 
    height: 104px; 
} 
.blue { 
    background-color: #00CCFF; 
} 
.green { 
    background-color: #CCFF00; 
} 
.orange { 
    background-color: #FFCC00; 
} 

http://jsfiddle.net/rmy6g8v2/

Или как это ?:

Я слегка модифицировал скрипку, поставляемого @deebs

http://jsfiddle.net/0h6fuyb2/1/

+0

Спасибо за то, что @PeterButcher, но я не хочу, чтобы полосы прокрутки в '.block' div - мне нужно' .block' оставаться неподвижным, но его содержимое перемещалось с основной полосой прокрутки. – Toby

+0

Ah righto. Вам понадобится JQuery, чтобы изменить прокрутку этого div в зависимости от положения прокрутки главной страницы. –

+0

@Toby Проверьте мое последнее редактирование, скрипка внизу –

0

U должен использовать overflow:scroll;, чтобы включить все div внутри обертки с свойством прокрутки. Проверьте эту ссылку jsfiddle, чтобы увидеть пример работы.

Если и не хочет видеть скроллбар, это еще одно решения jsfiddle

Надеется, что это полезно!

+0

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

+0

Да, не совсем @ user1038382 - I не нужны полосы прокрутки внутри '.block' div, но для содержимого' .block' для перемещения с основной полосой прокрутки. Спасибо за попытку! – Toby

1

Что делать, если вы делаете что-то вроде этого, чтобы получить scrollheight затем совпасть CSS из цветных див, или даже контейнер оборачивать эти дивы с этим scrollheight:

$(document).ready(function() { 
    window.onscroll = scrollFunction; 
    function scrollFunction() { 
     var doc = document.documentElement, body = document.body; 
     var top = (doc && doc.scrollTop || body && body.scrollTop || 0); 
     $('.blue').css("margin-top", top) 
    } 
}); 

ПЕРЕСМОТРЕННОМУ КОД

Я сделал fiddle, но я не уверен, что это «соответствие прокрутки», которое вы хотите.

+0

Все еще не уверен в визуальном поведении, которое вы хотите от этих цветных div, но вот еще один вариант: http://jsfiddle.net/yL02ubrf/ – deebs

+0

Это действительно близко, @deebs! Как я могу заставить '.blue' двигаться в противоположном направлении? Чтобы он перемещался вместе с остальной частью содержимого страницы, а не самой полосой прокрутки? – Toby

+0

Вы хотите что-то ищите? http://jsfiddle.net/5npj3e6f/ – deebs

Смежные вопросы