Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.07.2014, 15:56
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<style>
#spoiler {
 overflow: hidden;
 height: 30px;
 line-height: 15px;
}
#spoiler.active {
 height: auto;
}
</style>
<div id="spoiler">
немного параметров<br>
еще чуть-чуть параметров<br>
больше параметров<br>
еще больше параметров<br>
намного больше параметров<br>
</div>
<button>больше параметров</button>
    <script>
      $("button").click(function () {
      if ($("#spoiler").css("height") == "30px") {  
         var height = $("#spoiler").css("height", "auto").height();
         $("#spoiler").css("height", "30px")
         $("#spoiler").animate({"height": height});
     } else {
         $("#spoiler").animate({"height": "30px"});
     }
});
    </script>
Ответить с цитированием
  #12 (permalink)  
Старый 23.07.2014, 16:11
Интересующийся
Отправить личное сообщение для frenzy Посмотреть профиль Найти все сообщения от frenzy
 
Регистрация: 07.03.2013
Сообщений: 25

Что-то не работает. Файрбаг показывает, что var height = $("#spoiler").css("height", "auto").height(); выполняется и всё, но в итоге ничего не меняется и всегда выполянется только первое условие
А нет просто стандартной функции, которая могла бы перерендерить страницу после изменения height? Анимация мне не так важна.

Последний раз редактировалось frenzy, 23.07.2014 в 16:22.
Ответить с цитированием
  #13 (permalink)  
Старый 23.07.2014, 16:19
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

location.reload()
Ответить с цитированием
  #14 (permalink)  
Старый 23.07.2014, 16:37
Интересующийся
Отправить личное сообщение для frenzy Посмотреть профиль Найти все сообщения от frenzy
 
Регистрация: 07.03.2013
Сообщений: 25

Разобрался, что-то с условным переходом не то.
Если поставить $("#spoiler").css("height") != "auto", то анимация происходит развертка, но сворачиваться не хочет. В JS точно можно просто так взять и сравнить строки?
Поалертал. В общем округлять как-то нужно, ибо alert($("#jshop_unijax_filter").css("height")); выдает 500.5164px,(в css 500px)

Последний раз редактировалось frenzy, 23.07.2014 в 16:43.
Ответить с цитированием
  #15 (permalink)  
Старый 23.07.2014, 16:44
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<style>
#spoiler {
 overflow: hidden;
 height: 30px;
 line-height: 15px;
}
#spoiler.active {
 height: auto;
}
</style>
<div id="spoiler">
немного параметров<br>
еще чуть-чуть параметров<br>
больше параметров<br>
еще больше параметров<br>
намного больше параметров<br>
</div>
<button>больше параметров</button>
    <script>
    (function () {
      var flag = true;

    $("button").click(function () {
      if (flag) {  
         var height = $("#spoiler").css("height", "auto").height();
         $("#spoiler").css("height", "30px")
         $("#spoiler").animate({"height": height});
     } else {
         $("#spoiler").animate({"height": "30px"});
     }

flag = !flag;

});

   })()      
    </script>
Ответить с цитированием
  #16 (permalink)  
Старый 23.07.2014, 16:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от frenzy
$("#spoiler").css("height") != "auto"
это условие будет всегдачаще всего истинно
Ответить с цитированием
  #17 (permalink)  
Старый 23.07.2014, 16:45
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Строки сравнивать можно.
Если не важна анимация можно писать вместо
$("#spoiler").animate({"height": height});

вот так
$("#spoiler").css("height", "30px");
$("#spoiler").css("height", "auto");
Ответить с цитированием
  #18 (permalink)  
Старый 23.07.2014, 16:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от tsigel
Если не важна анимация можно
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<style>
#spoiler {
 overflow: hidden;
 height: 30px;
 line-height: 15px;
}
#spoiler.active {
 height: auto;
}
</style>
<div id="spoiler">
немного параметров<br>
еще чуть-чуть параметров<br>
больше параметров<br>
еще больше параметров<br>
намного больше параметров<br>
</div>
<button>больше параметров</button>
    <script>
    	(function ()
    	  {
    	    var flag = true;
    	    $("button").click(function ()
    	      {$("#spoiler").toggleClass('active')
    	      }
    	    )
    	  }
    	)()
    </script>
Ответить с цитированием
  #19 (permalink)  
Старый 23.07.2014, 17:04
Интересующийся
Отправить личное сообщение для frenzy Посмотреть профиль Найти все сообщения от frenzy
 
Регистрация: 07.03.2013
Сообщений: 25

tsigel
27 $("#spoiler").css("height", "30px") - что делает эта строчка вообще и почему нет ; изначально? Ибо я убераю и ничего не происходит.

Вообще ПОЧТИ.
(function($){
	  
	  var collapsed = false;
	  $("#showmore").click(function () {
	  alert($("#jshop_unijax_filter").css("height"));
	  if (collapsed == 0) {  
		 collapsed = true;
		 var height = $("#jshop_unijax_filter").css("height", "auto").height();
		 $("#jshop_unijax_filter").animate({"height": height});
	 } else {
		 $("#jshop_unijax_filter").animate({"height": "500px"});}
		 collapsed = false;
		 })
	  
	  })(jQuery)

Вот только collapsed на true почему-то не меняется вообще. Уж не с локальностью переменных ли проблемы?
Ответить с цитированием
  #20 (permalink)  
Старый 23.07.2014, 17:12
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Сообщение от frenzy Посмотреть сообщение
if (collapsed == 0) {
должно быть
if (collapsed) {
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как мне можно изменить этот скрипт Niko jQuery 0 13.04.2013 14:47
Скрипт для рандомного показа текста после нажатия на кнопку. Светлана777 Общие вопросы Javascript 0 25.11.2012 00:08
скрипт для выбора серий и сезонов vk Evkliptik Общие вопросы Javascript 0 23.09.2012 16:10
скрипт раскрывающегося и закрывающегося текста не работает в ie Medvedoc Javascript под браузер 1 14.10.2011 23:18
Подскажите скрипт для загрузки фото на сервер Mapshal Общие вопросы Javascript 0 13.08.2011 17:49