Итак, на моем сайте, когда нажата кнопка, я динамически генерирую div, содержащий сетку изображений. Это выглядит так:прокрутите страницу к новому созданному div
$('.prod-images').click(function(){
var prodImages = generateProdImagesGrid(this);
$('#prod-images-grid').html(prodImages).show();
});
Это прекрасно работает. И у меня есть еще одна кнопка, которая закроет этот div нажатием.
Теперь этот div может быть выше экрана и требует вертикальной прокрутки. Проблема в том, что из-за всех CSS/стилей на этой странице этот div всегда открывается только в позиции прокрутки, где он был закрыт. Поэтому, когда я открываю его в первый раз, он прокручивается вверх, и все в порядке. Теперь предположим, что я прокручу этот div на полпути вниз, а затем закрою его. В следующий раз, когда он будет открыт, он откроется в этой позиции прокрутки.
Я попытался сделать:
$('#prod-images-grid').html(prodImages).scrollTop(0).show();
Это не работает (по крайней мере, в хроме), потому что ДИВ не полностью оказанные, когда вызов scrollTop() выполняется.
Единственный способ, которым я могу сделать эту работу, чтобы дать длительную задержку между сНом рендерингом и вызовом scrollTop так:
$('#prod-images-grid').html(prodImages).show();
window.setTimeout(function(){
$('#prod-images-grid').scrollTop(0);
},10000); //call scrollTop after 10 seconds
Как вы можете себе представить, что это совсем не хорошее решение. Есть ли у кого-нибудь какие-либо предложения о том, как я могу отобразить div так, чтобы, когда он был видимым, он прокручивается до верхней позиции?
Вы пробовали '$ ('# prod-images-grid'). Html (prodImages) .show(). ScrollTop (0);'? –
@ZakariaAcharki: Я считаю, что у меня есть, я пытаюсь это еще раз прямо сейчас ... –
Nope не работает. Я уверен, что это предполагается при обычных обстоятельствах ... но тогда divs на этой странице находятся под давлением ... –