Я использую функцию MaintainScrollPositionOnPostback
в asp.net, поэтому, когда страница отправляет назад страницу, похоже, что она осталась в том же положении. Однако, когда страница возвращается, это очень заметно. Страница загружается вверху, а затем прыгает вниз до того места, которое было раньше. Есть ли способ сгладить это, чтобы при загрузке страницы она загружалась в предыдущую позицию?Как сделать сохранение положения прокрутки гладкой
0
A
ответ
0
Вы можете создать свою собственную функцию, чтобы сделать прокрутку на предыдущую позицию гладкой. Обычно Y-позиция сохраняется в скрытом поле __SCROLLPOSITIONY
. Но когда вы отключите MaintainScrollPositionOnPostback
, это поле формы также исчезнет.
Сделайте правильный выбор: HiddenField
и напишите его. Затем после PostBack вы можете прочитать это значение и прокрутить к нему.
<asp:HiddenField ID="HiddenField1" runat="server" />
<script type="text/javascript">
$(document).ready(function() {
$('html,body').animate({
scrollTop: $("#<%= HiddenField1.ClientID %>").val()
});
});
$(document).mousemove(function (e) {
$("#<%= HiddenField1.ClientID %>").val(e.pageY)
});
</script>
Я тестировал этот фрагмент только быстро, возможно, ему нужна еще одна настройка.
Вы считали, что полностью отказываетесь от обратных передач и используете AJAX, чтобы страница никогда не была разгружена? – mason