Нет плавной анимации до 100%
Часть кода отвечающая за разворачивание и сворачивание:
function hidenm(index) { //Функция скрытия и расскрытия новостей bl = $('#news'+index); if (bl.height() > maxheight) { bl.animate({height:maxheight},500); bl.parents('.entry-content').find('.nm_hide_but').text('Развернуть'); } else { bl.animate({height:'100%'},500); bl.parents('.entry-content').find('.nm_hide_but').text('Свернуть'); } } maxheight задано в пикселях. Проблема в том, что анимация bl.animate({height:'100%'},500); не проигрывается, а сразу переходит на значение 100%, скрытие блока до заданных размеров работает как нужно. Как исправить эту проблему? Версия jq на данный момент последняя 1.6.1 |
Юзнув пару раз твой код... пришёл к выводу что метод вызывается раньше или позже его определения. должно быть примерно так
$(document).ready(function() { function hidenm(index) { //Функция скрытия и расскрытия новостей bl = $('#news'+index); if (bl.height() > maxheight) { bl.animate({height:maxheight},500); bl.parents('.entry-content').find('.nm_hide_but').text('Развернуть'); } else { bl.animate({height:'100%'},500); bl.parents('.entry-content').find('.nm_hide_but').text('Свернуть'); } } $(".news_clic").click(function() { if(!$("#news").length) { hidenm(); } else } ); }); |
Ничо не понял... вот весь код:
function hidenm(index) { //Функция скрытия и расскрытия новостей bl = $('#news'+index); if (bl.height() > maxheight) { bl.animate({height:maxheight},500); bl.parents('.entry-content').find('.nm_hide_but').text('Развернуть'); } else { bl.animate({height:'100%'},500); bl.parents('.entry-content').find('.nm_hide_but').text('Свернуть'); } } $(document).ready(function(){ sizes = Array(); maxheight=200; nm = $('.main-content .entry-content'); //находим новость nm.each(function(i,el){ news_mes = $(this).find('.news_message'); //находим текст новости if (news_mes.height()>maxheight) { //Если размер большой news_mes.css('height',maxheight+'px'); //Уменьшаем news_mes.attr('id','news'+i); //Вставляем идентификатор новости news_mes_data = news_mes.parents('.entry-content').find('.news-info-right'); //Находим место куда вставить кнопку разворачивания news_mes_data.prepend('<span class="nm_hide_but" onClick="hidenm('+i+')">Развернуть</span>'); //Вставляем кнопку } }); }); кстати если поставить функцию под документ реди, то при нажатии на развертывание будет ошибка, что функция не определена...почему? Блин либо я туплю либо это тупой бред... Ничо не работает |
$(document).ready(function(){ var maxheight=200; var sizes = Array(); function hidenm(index) { //Функция скрытия и расскрытия новостей bl = $('#news'+index); if (bl.height() > maxheight) { bl.animate({height:maxheight},500); bl.parents('.entry-content').find('.nm_hide_but').text('Развернуть'); } else { bl.animate({height:"100%"},500); bl.parents('.entry-content').find('.nm_hide_but').text('Свернуть'); } } nm = $('.main-content .entry-content'); //находим новость nm.each(function(i,el){ news_mes = $(this).find('.news_message'); //находим текст новости if (news_mes.height()>maxheight) { //Если размер большой news_mes.css('height',maxheight+'px'); //Уменьшаем news_mes.attr('id','news'+i); //Вставляем идентификатор новости news_mes_data = news_mes.parents('.entry-content').find('.news-info-right'); //Находим место куда вставить кнопку разворачивания news_mes_data.prepend('<span class="nm_hide_but">Развернуть</span>'); //Вставляем кнопку $(".nm_hide_but").click(function(){ hidenm('+i+'); }); } }); }); Вроде так... И метод который ты создаёшь всегда должен быть в $(document).ready(function(){ function MyMethod() { code .... } }); или в $(function(){ }); |
Скопировал ваш код, вместо
news_mes_data.prepend('<span class="nm_hide_but">Развернуть</span>'); //Вставляем кнопку $(".nm_hide_but").click(function(){ hidenm('+i+'); }); поставил: news_mes_data.prepend('<span class="nm_hide_but">Развернуть</span>'); //Вставляем кнопку news_mes_data.find('.nm_hide_but').click(function(){ hidenm(i); }); Иначе не работает. Проблема не исчезла - разворачивается по прежнему без анимации до 100% |
Никто не знает с чем это связано? :blink:
|
всем спасибо :thanks:
|
Часовой пояс GMT +3, время: 09:45. |