У меня есть div #up и div #middle как внутри div #frame
с помощью css:
#frame{
position: absolute;
left:200;
top:200;
border-style: solid;
border-width: 1px;
}
#middle{
width:200px;
height:200px;
}
#up{
position:absolute;
bottom:200;
display:none;
}
Когда я нажимаю на #middle, я нахожусь в слайде # up снизу вверх с кодом jQuery:
$('#middle').click(function () {
$('#up').slideToggle();
});
здесь jsFiddle: http://jsfiddle.net/malamine_kebe/DCSuR/
мой вопрос: как я могу также перетащить верхнюю границу рамки #frame, когда #up является slideToggling
Вы не можете переключать границу элемента с внутренним div, который имеет position: absolute;
Посмотрите на демонстрацию, я добавил границу к #up
со всех сторон, кроме нижнего, и сделаю этот div переопределив родительский (#middle
) с bottom: 201px;
UPDATE 2: Я не уверен, что если вам нужна вкладка эффект, как это
или как @Danko сделал ссылку
Я просто проблема с CSS. Когда вы используете position: absolute
элемент может выйти наружу без изменения родительского кадра. Поэтому, если вы перейдете на position: relative
она будет работать.
#up{
position:relative;
top: 0;
display:none;
}
Думаю, это может быть что-то...
var i = 0;
$('#middle').click(function () {
var tp = i % 2 === 0 ? $(this).offset().top - $('#up').height() : $(this).offset().top - 2;
$('#frame').animate({
top: tp
});
$('#up').slideToggle();
i++;
});
Проверьте, отвечает ли это на ваш вопрос. ОБНОВЛЕНИЕ JAVASCRIPT
$('#middle').click(function () {
$('#up').slideToggle(function(){
$('#frame').css("borderTop","2px solid #000");
});
});
И ОБНОВЛЕНИЕ CSS
#up{
position:absolute;
bottom:200px;
display:none;
border-top: 2px solid black;
}