Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2011, 08:51
Интересующийся
Отправить личное сообщение для lynch1 Посмотреть профиль Найти все сообщения от lynch1
 
Регистрация: 15.02.2011
Сообщений: 11

Нет плавной анимации до 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
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2011, 10:25
Интересующийся
Отправить личное сообщение для Naguwal Посмотреть профиль Найти все сообщения от Naguwal
 
Регистрация: 29.05.2010
Сообщений: 13

Юзнув пару раз твой код... пришёл к выводу что метод вызывается раньше или позже его определения. должно быть примерно так

$(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 


	
	
	}


		
	
	
	);
	
});
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2011, 10:53
Интересующийся
Отправить личное сообщение для lynch1 Посмотреть профиль Найти все сообщения от lynch1
 
Регистрация: 15.02.2011
Сообщений: 11

Ничо не понял... вот весь код:
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>'); //Вставляем кнопку
			
		}
	});
});

кстати если поставить функцию под документ реди, то при нажатии на развертывание будет ошибка, что функция не определена...почему? Блин либо я туплю либо это тупой бред... Ничо не работает
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2011, 12:39
Интересующийся
Отправить личное сообщение для Naguwal Посмотреть профиль Найти все сообщения от Naguwal
 
Регистрация: 29.05.2010
Сообщений: 13

$(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(){

});

Последний раз редактировалось Naguwal, 03.07.2011 в 12:43.
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2011, 13:00
Интересующийся
Отправить личное сообщение для lynch1 Посмотреть профиль Найти все сообщения от lynch1
 
Регистрация: 15.02.2011
Сообщений: 11

Скопировал ваш код, вместо
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%
Ответить с цитированием
  #6 (permalink)  
Старый 04.07.2011, 05:25
Интересующийся
Отправить личное сообщение для lynch1 Посмотреть профиль Найти все сообщения от lynch1
 
Регистрация: 15.02.2011
Сообщений: 11

Никто не знает с чем это связано?
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2011, 10:38
Интересующийся
Отправить личное сообщение для lynch1 Посмотреть профиль Найти все сообщения от lynch1
 
Регистрация: 15.02.2011
Сообщений: 11

всем спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение смещения в момент анимации. 0931454574 jQuery 6 13.05.2011 09:55
Работа с radiobutton djsadd Элементы интерфейса 2 06.04.2011 08:37
Почему то работает, то нет? gyunduz Общие вопросы Javascript 0 22.01.2011 16:08
Порядок выполнения анимации Tohin jQuery 3 03.07.2009 11:52
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09