Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2015, 05:08
Аспирант
Отправить личное сообщение для monax_111 Посмотреть профиль Найти все сообщения от monax_111
 
Регистрация: 29.12.2012
Сообщений: 34

hide увеличивает высоту?
добрый день!
имею вот таких два очаровательных блока
пример
задача - плавно свернуть 1й блок влево по нажатию на 2ой блок!
как видите почему то второй блок начинает прыгать вниз!

в чем проблема? почему они не сворачиваются на одном уровне?
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2015, 07:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В том, что элементы inline-block, а .hide() уменьшает сразу по ширине и высоте. Вместо display:inline-block; задать float:left;, а

$('.main_factors_div').hide(7000);

заменить на

$('.main_factors_div').animate({width : 0, opacity : 0}, 7000);

Последний раз редактировалось laimas, 19.10.2015 в 07:23.
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2015, 08:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

laimas,
всё равно вроде по высоте прыгает в конце анимации ... нужно наверно ещё что-то в css добавить...
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2015, 08:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

рони, это прыгает потому, что текст становится в две строки, а уж как ему надо, то-ли overflow:hidden; и white-space:nowrap; сделать, то-ли лучше будет размер шрифта анимировать.... Пусть сам решает
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2015, 15:11
Аспирант
Отправить личное сообщение для monax_111 Посмотреть профиль Найти все сообщения от monax_111
 
Регистрация: 29.12.2012
Сообщений: 34

Сообщение от laimas Посмотреть сообщение
рони, это прыгает потому, что текст становится в две строки, а уж как ему надо, то-ли overflow:hidden; и white-space:nowrap; сделать, то-ли лучше будет размер шрифта анимировать.... Пусть сам решает
Ты не прав, функция hide выставляет первому блоку свойство overflow:hidden, а толку нет!!
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2015, 15:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

monax_111,
<!DOCTYPE html>

<html lang="en">
<head>
  <meta charset="utf-8">

  <title>slide demo</title>
  <style>
 .main_factors_div {
     white-space:nowrap;
   }
  .additions {float:left;padding:15px;background-color:#E5E5E5;margin:30px}
        .additions:hover{background-color:#C3C3C3}

        .div_connect {display:block;padding:15px;background-color:#E5E5E5;margin:10px 100px}
        .div_connect:hover{background-color:#C3C3C3}

  </style>
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>

</head>

<body>
  <center>
    <center class=" additions main_factors_div">
      4 фактор(ов)
    </center>

    <center class="additions main_connect_div">
      5 связь(ей)
    </center>
  </center><script>
$(document).ready(function () {
            doc_w = $(window).width()-50;
            additions_div_width=(doc_w-300)/2;
            $('.additions').css({"width":additions_div_width})
            $('.main_connect_div').one("click",show_connect)
    })

        function show_connect(){
            $('.main_factors_div').animate({width : 0, opacity : 0}, 7000).css({});

        }


  </script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2015, 15:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от monax_111
Ты не прав, функция hide выставляет первому блоку свойство overflow:hidden, а толку нет!!
Какая функция, если это через стили задавать надо.
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2015, 20:00
Аспирант
Отправить личное сообщение для monax_111 Посмотреть профиль Найти все сообщения от monax_111
 
Регистрация: 29.12.2012
Сообщений: 34

Сообщение от laimas Посмотреть сообщение
Какая функция, если это через стили задавать надо.
во время выполнения анимации нажми на паузу и посмотри на стили объекта - специально время большое задал
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2015, 20:04
Аспирант
Отправить личное сообщение для monax_111 Посмотреть профиль Найти все сообщения от monax_111
 
Регистрация: 29.12.2012
Сообщений: 34

Сообщение от рони Посмотреть сообщение
monax_111,
получилось, спасибо - но все же интересно почему обычная функция hide так плохо работает.....
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2015, 20:09
Аспирант
Отправить личное сообщение для monax_111 Посмотреть профиль Найти все сообщения от monax_111
 
Регистрация: 29.12.2012
Сообщений: 34

вообщем пока что самое простое решение это поменять
display: inline-block; на float:left;
тогда и функция hide работает нормально
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить высоту виджета ВК lalka Общие вопросы Javascript 3 21.09.2014 21:58
hide marker by id sedoyksa ExtJS 0 21.11.2011 09:09
Можно ли средствами JS узнать высоту скрытого элемента? ацкий Общие вопросы Javascript 7 24.08.2011 19:07
Не получается поменять высоту div revvo jQuery 4 06.08.2011 13:12
Подстроить высоту страницы под юзера, прошу совета у гуру batonsu Events/DOM/Window 11 10.11.2010 19:39