Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Скроллинг. Opera.


Автор: CruorVult 23.9.2010, 12:03
Вылез такой глюк:
Если страница прокручена и изменить display:block/none некоторого дива, то страницу прокручивает вверх. 
Из-за чего может такое происходить? (в Опере) 
Код

<td class="cEven company_event_text">
<div id="event36733" style="display: none">
<div class="left">
<div class="right">
<img class="edit_img" onclick="controller.eventEdit(36733, true)"/>
</div>
</div>
<div id="eevent36733" class="dnone" style="display: block">
<div class="left">
<div class="right">
<input type="button" value="Отмена" onclick="controller.eventEdit(36733, false)"/>
</div>
</div>
</td>

Код

eventEdit : function(id, tf) {
        $('event'+id).style.display = (tf)? 'none':'block';
        $('eevent'+id).style.display = (tf)? 'block':'none'; 
    }

Автор: magelan 23.9.2010, 22:54
могу только внести предложение по лечению симптомов...

Перед изменением видимости запоминаете body.scrollTop, после изменения - восстанавливаете.

Автор: CruorVult 23.9.2010, 23:17
Цитата(magelan @  23.9.2010,  22:54 Найти цитируемый пост)
Перед изменением видимости запоминаете body.scrollTop, после изменения - восстанавливаете.



да не, не катит. На другой странице работает нормально. Нужно выловить баг. Вся страница динамически русуется, и найти в чём загвоздка сложновато, по-этому для начала нужно узнать возможные причины такого поведения. 

Автор: CruorVult 24.9.2010, 10:25
Всё, вопрос решен. Такое неадыкватное поведение связано со стилями. В главном контейнере есть background-image(no-repeat), и если указать маленькую высоту изображения то выполняется ненужный скролл.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)