2014-12-04 4 views
0

Так что я занят в этом проекте, который включает в себя растяжку, чтобы скользить вверх и вниз по нажатию кнопки:slideToggle оставляет пустое пространство

$("#open").click(function() { 
    $("#banner").slideToggle("slow"); 
    }); 

Как вы можете видеть, когда кнопка open щелчке на баннер скользит вверх или вниз, в зависимости от текущего состояния.

Но когда баннер скользит вверх, есть пустое пространство создается, как вы можете видеть на примере 1:

Example 1

И когда баннер показывается, там очень мало места осталось, что является эффект, который я хочу иметь, как вы можете видеть на примере 2:

Example 2

(«parkbench» вещи в нижней части баннера, но если я бы screenshotted полного изображения пост будет быть способ долго.)

Теперь, что я хочу достичь, пространство между двумя элементами остается неизменным, поэтому также, когда баннер не отображается.

HTML, довольно прост:

<div id="banner"> 
      <div id="djbanner"></div> 
     </div> 



<div style="float:left; margin-left:0.55%; margin-top:210px; width:42%"> 
<div class="vak"> 
    <div class="vak_top"><p class="text">Box</p></div> 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. 

Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, 
</div> 

Я знаю, что есть DIV, который не является закрытым, но это потому, что есть еще ДИВ под ним, который не является действительно neccecairy на вопрос.

Есть ли способ достичь эффекта, которого я хочу достичь?

Спасибо,

Роб

+2

Демонстрация была бы полезна, но это могло произойти из-за того, что у вас есть край, –

ответ

0

Я решил эту проблему, используя следующий метод:

if ($('#banner').css("display") == "none") { 
    $("#banner").slideDown(2100); 
    $("#contentmain").animate({marginTop: '-329px'}, 1500); 
} else { 
     $("#banner").slideUp(2100); 
     $('#contentmain').animate({marginTop: '-480px'}, 1500); 
    } 
}); 

Stil, спасибо за все ответы Тхо!

0

Кажется, что дополнительное пространство, вызвана макетом DIV под ним с большим отрывом верхом настройки. Самое быстрое исправление заключалось бы в том, чтобы изменить этот крайний край в той же функции JS с помощью вызова slideToggle, но в идеале вам нужно было бы исключить float и большую область margin и найти способ достижения этого макета, используя обычный поток страниц.

+0

http://jsfiddle.net/9qrypcm4/1/ –