2015-07-27 2 views
0

Я заметил странное поведение при использовании scrollTop jquery в IE 9, 10 & 11. Когда функция запускается, IE сбрасывает положение прокрутки страницы до 0, самого верхнего, затем он анимируется до нужного раздела. Я ищу способ совпадения поведения прокрутки, найденного в других браузерах, где он прокручивается с текущей позиции. Вот мой соответствующий код:jQuery scrollTop() Сбрасывается до вершины в IE

Во-первых, я связываю это событие щелчка на мой элемент:

$("body").on("click", ".marker", function() { 
    window.requestAnimationFrame(function() { 
     theAutoScrollingFunctions.scrollToTarget("city", 5000); 
    }); 
}); 

Тогда моя прокруткой функция:

$("html,body").animate({ scrollTop: $(document).height()}, 500, function() { 
     // Callback stuff 
}); 

прокручивающееся технически работает, но в IE эта страница перезагрузитесь в начало, а затем прокрутите список. Я попытался разместить значения return false; на протяжении всего процесса, но не повезло.

Неужели кто-нибудь еще видел эту проблему?

+1

Что такое '.marker'? – epascarello

+0

Вы должны предоставить минималистский образец для репликации вопроса –

ответ

0

Я использую ту же функцию анимации при выполнении прокрутки к разделам на сайтах, которые я строю. При тестировании в IE 8+ он отлично работает. Возможно, $(document).height() - это часть, которая делает сброс в верхней части?

Это, как я хотел бы сделать это:

<ul id="section-links"> 
    <li><a href="#section1">Scroll to section1</a><li> 
    <li><a href="#section2">Scroll to section2</a><li> 
</ul> 
<section id="section1"> 
    <h1>This is the first section</h1> 
</section> 
<section id="section2"> 
    <h1>Another example section</h2> 
</section> 

<style> 
    section{display:block;width:100%;min-height:300px;} 
</style> 

<script> 
    jQuery(document).ready(function($){ 
    $('#section-links a').click(function(){ 
     var section = $(this).attr('href'); 
     $('html, body').animate({scrollTop:$(section).offset().top - 10}, 'slow'); 
    }); 
    }); 
</script> 

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

Я не видел ошибку, которую вы описываете с помощью этого метода.

удачи

+0

Я ценю предложение, однако это не ясности. Я пытаюсь отследить его и проследить, но до сих пор не повезло. – Yuschick

0

Вопрос, казалось, с моим селектором JQuery.

$("html,body").animate.... 

Изменен

$("html").animate.... 

Это выглядит, что решить эту проблему в IE9 + и все согласованное поведение через другие браузеры я испытал.

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