Как я могу прокрутить до определенного div onclick?

0

У меня есть эта функция

    function first_scroll() {
        document.getElementById('insert').scrollIntoView();
    }

и эта кнопка

Button ID="finish" runat="server" Text="Finalize" OnClientClick="first_scroll()"

Эта кнопка запускает некоторый код, и я хочу, чтобы страница прокручивалась после запуска этого кода. Прямо сейчас, это прокручивается до специализированного div менее чем за секунду, а затем после обратной передачи снова запускается вверху.

Чтобы решить эту проблему, я попытался использовать

<% Page MaintainScrollPositionOnPostback="true" %>

Однако это не имело никакого эффекта. Итак, как мне сделать прокрутку страницы после запуска кода?

Заранее спасибо!

1 ответ

0

Сначала вы хотите связать функцию как обработчик клика изображения:

$('#someImage').click(function () {
    // Code to do scrolling happens here
});

Это применит обработчик кликов к изображению с id="someImage". Если вы хотите сделать это со всеми изображениями, замените '#someImage' на 'img'.

Теперь для фактического кода прокрутки:

  1. Получите смещения изображения (относительно документа):

    var offset = $(this).offset(); // Contains .top and .left
    
  2. Вычтите 20 из top и left:

    offset.left -= 20;
    offset.top -= 20;
    
  3. Теперь анимируйте свойства CSS прокрутки и прокрутки слева от <body> и <html>:

    $('html, body').animate({
        scrollTop: offset.top,
        scrollLeft: offset.left
    });
    

Кроме того, посмотрите на плагин jQuery.scrollTo.

Вот демо.

Это повторяющийся вопрос с этой страницы.

  • 0
    Почему 20? Кажется произвольным.
  • 0
    За исключением того, что это не тот вопрос. Моя кнопка запускает некоторый код VB, а затем происходит обратная передача. После этой обратной передачи, несмотря на то, что я прокручивал с помощью javascript, страница начинается снова вверху. Спасибо за ответ, но это не помогает.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню