2014-10-05 2 views
0

У меня есть кнопка внутри DOM, которая при нажатии открывается скрытым div, используя метод slideToggle для jQuery.jQuery slideToggle bouncing из-за iFrame

Скрытый div периодически обновляется с использованием AJAX и jQuery для отображения Tweet. Twitter предоставляет код для вставки Tweet как blockquote, а затем скрипт, чтобы получить красиво отображаемый текст в iFrame. Все это происходит, когда div скрыт. Таким образом, когда метод slideToggle называется, он не знает, насколько высок div, и поэтому он перескакивает, создавая уродливый эффект отскока.

Есть ли способы избавиться от этого? Имейте в виду, что высота div будет меняться в зависимости от Tweet, поэтому высота не может быть жестко закодирована.

ответ

1

Ну вам не нужно знать высоту скрытого DIV, вы можете просто сделать slideToggle, он будет открыть DIV на это полный рост :)

http://jsfiddle.net/3fyamqLk/

$('.toggle').on('click', function (e) { 

    $('#hidden').stop().slideToggle(); 

    return false; 
}); 

Может быть у вас есть что-то еще, что делает прыжок, я не могу сказать, не видя какой-то код :)

+0

Правильно, но из-за того, что iFrame вставлен, пока он скрыт, происходит отскок. –

+0

Вы можете попытаться добавить стоп перед слайдом, чтобы остановить все события, происходящие в этом элементе :) Попробуйте использовать код из отредактированного ответа. Было бы намного проще, если бы вы могли воссоздать прыжок в скрипке :) –