Показать сообщение отдельно
  #18 (permalink)  
Старый 30.11.2014, 16:15
Интересующийся
Отправить личное сообщение для axmed2004 Посмотреть профиль Найти все сообщения от axmed2004
 
Регистрация: 03.03.2011
Сообщений: 12

помогите решить проблему с плагином
Здравствуйте. Сделал плагин анимированного сворачивания/разворачивания текстовых блоков. Все бы хорошо, но при наличии нескольких таких блоков параметр max-height берется с последнего блока, и если некоторые из предыдущих будут больше то раскрываются не полностью, а если меньше то анимация происходит с небольшой задержкой

(function($) {
  $.fn.openhide=function(options){
	var settings=$.extend({
		'maxH':200,
		'time':500,
		'removeButton':0,
		'hoverClass':false,
	},options)

	this.each(function(i){
		hg=$(this).height()
		if(hg>options.maxH){
			$(this).css({
				'max-height':options.maxH+'px',
				'overflow-y':'hidden'
			}).wrap("<div class='wrapper'></div>")
			$(this).parents(".wrapper").append("<span class='opener'>Раскрыть</span>")
			
			$(this).parents(".wrapper").find(".opener").click(function(){
				opener=$(this)
				div=opener.parents(".wrapper").find("div")
				op=div.hasClass("opened")
				div.animate({
					'max-height':(op?options.maxH:hg)+'px'
				},options.time,function(){
					if(options.removeButton)
						opener.remove()
					else{
						if(op){
							div.removeClass("opened")
							opener.text("Раскрыть")
						}
						else{
							div.addClass("opened")
							opener.text("Свернуть")
						}
					}
				})
			})
			.mouseover(function(){
				if(options.hoverClass)
					$(this).addClass(options.hoverClass)
			})
			.mouseout(function(){
				if(options.hoverClass)
					$(this).removeClass(options.hoverClass)
			})
		}
		
	})
  }
})(jQuery)


опция removeButton - удаление кнопки после разворачивания
Ответить с цитированием