У меня есть эта функция
function first_scroll() {
document.getElementById('insert').scrollIntoView();
}
и эта кнопка
Button ID="finish" runat="server" Text="Finalize" OnClientClick="first_scroll()"
Эта кнопка запускает некоторый код, и я хочу, чтобы страница прокручивалась после запуска этого кода. Прямо сейчас, это прокручивается до специализированного div менее чем за секунду, а затем после обратной передачи снова запускается вверху.
Чтобы решить эту проблему, я попытался использовать
<% Page MaintainScrollPositionOnPostback="true" %>
Однако это не имело никакого эффекта. Итак, как мне сделать прокрутку страницы после запуска кода?
Заранее спасибо!
Сначала вы хотите связать функцию как обработчик клика изображения:
$('#someImage').click(function () {
// Code to do scrolling happens here
});
Это применит обработчик кликов к изображению с id="someImage"
. Если вы хотите сделать это со всеми изображениями, замените '#someImage'
на 'img'
.
Теперь для фактического кода прокрутки:
Получите смещения изображения (относительно документа):
var offset = $(this).offset(); // Contains .top and .left
Вычтите 20 из top
и left
:
offset.left -= 20;
offset.top -= 20;
Теперь анимируйте свойства CSS прокрутки и прокрутки слева от <body>
и <html>
:
$('html, body').animate({
scrollTop: offset.top,
scrollLeft: offset.left
});
Кроме того, посмотрите на плагин jQuery.scrollTo.
Вот демо.
Это повторяющийся вопрос с этой страницы.