Измените прокрутку скрытого отделения

У меня есть скрытое отделение с фиксированной высотой и полосой прокрутки. Я хотел бы сменить положение прокрутки, но браузер не будет le меня делать это, поскольку отделение скрыто. scrollTop свойство будет придерживаться 0.

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

Если кто-либо будет знать, как сделать это, это будет действительно полезно.

Спасибо!

9
задан Savageman 22 June 2010 в 23:36
поделиться

3 ответа

Мой вопрос был не полным. div не скрыт сам по себе. Он является частью контейнера div, который скрыт. Внутренний div отображается вместе с его родителем.

<div class="container hidden">
    <div id="some_div">Content</div>
    <div id="my_div">I wanted to scroll this one</div>
    <div id="other_div">Content</div>
</div>

Мы используем jQuery придумали пользовательское событие "onShow".

Так что теперь мы можем сделать следующее:

$('#my_div').bind('show', function() {
    handle_scrollTopOffset();
});

Когда событие show привязывается, оно добавляет класс .onShow к div. А функция jQuery.fn.show() была переопределена, чтобы вызвать событие 'show' на дочерних элементах, которые имеют класс .onShow.

Спасибо всем за предложения. Извините, что задал неполный вопрос. Я расскажу все подробности в следующий раз.

2
ответ дан 3 November 2019 в 04:40
поделиться

Вы можете сохранить прокрутку с помощью функции данных jQuery.

function SaveScroll(val)
{
    $(the_element).data("Scroll", val);
}

function Show()
{
    var element = $(the_element);

    // prevent from showing while scrolling
    element.css
    ({
        position: "absolute",
        top: "-50000px",
        left: "-50000px",
        display: ""
    });

    // Scroll to the position set when it was hidden
    element.scrollTop(element.data("Scroll"));

    // show the element
    element.css
    ({
        position: "",
        top: "",
        left: ""
    });
}

Это может помочь


Вы можете просто использовать visibility: hidden вместо display: none . Видимость сохраняет элемент на месте. Я считаю, что это то же самое, что и opacity: 0 , но это кроссбраузерное решение.

3
ответ дан 3 November 2019 в 04:40
поделиться

Чтобы предотвратить мерцание div и исправить недоступность

для скриптов, вы можете использовать скрытие позиции вместо "display: none;" :

.hidden {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
}
2
ответ дан 3 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: