У меня есть код jQuery, который, когда пользователь нажимает на заголовок <h2>
открывает div
с его содержимым внутри.
Код HTML:
<div class="content1">
<h2 class="vertical"> open text box</h2>
</div>
<div class="content1-text" >
Text box
<div id="back1" style="float:right;">HOME</div>
</div>
Код Css:
.content1-text {
padding: 20px;
width: 920px;
min-height: 560px;
height: auto;
background: #61752d;
margin: 0;
position: absolute;
display: none;
}
Код jQuery:
$('.content1').click(function () {
if($('.content1').is(':visible')){
$('.content1-text').toggle('slide', {
direction: 'left'
}, 1000);
}
else{
$('#back1').toggle('slide', {
direction: 'left'
}, 1000, function(){ $('#content1-text').fadeIn();});
}
});
Проблема в том, что когда пользователь нажимает на открытое текстовое поле, он открывает окно, но когда пользователь нажимает на HOME, он не отскакивает назад, как это было в начале...
Я пытаюсь заставить его скользить слева направо.. и когда он закрывается справа налево.
Я пытался найти его в Интернете, но без всякой удачи.
Мой JsFiddle здесь
Я думаю, вам действительно нужно просмотреть метод toogle http://api.jquery.com/toggle/
Вы можете сделать следующее:
$('.content1').click(function () {
$('.content1-text').toggle("slow");
});
$('#back1').click(function () {
$('.content1-text').toggle("slow");
});
Просмотр демонстрационной версии http://jsfiddle.net/PBm88/11/
РЕДАКТИРОВАТЬ
После более подробной информации о ожидаемом результате вы можете сделать функцию на основе имени classname
которая позволяет анимацию слайда для относительного контейнера:
$('.vertical').click(function () {
var id=$(this).parent().attr('class'),
slid='.'+id+'-text';
$(slid).show().animate({
width:'920px',
opacity: '1'
},2000)
});
$('.back').click(function () {
$(this).parent().animate({
width:'0px',
opacity: '0'
},
{duration:2000,
complete: function() {
$( this ).hide();
}
});
});
Новая демонстрация http://jsfiddle.net/PBm88/59/
content
классов и back
во все div, которые я использую next
и parent
по этой причине. Можете ли вы добавить скрипку с несколькими контейнерами?
У вас нет обработчика кликов для кнопки "домой"
Пытаться
$('.content1').click(function () {
$('.content1-text').toggle('slide', {
direction: 'left'
}, 1000);
});
$('#back1').click(function(){
$('.content1-text').toggle('slide', {
direction: 'left'
}, 1000);
})
Демо: скрипка
.content1
, .content2
т. Д.
Вместо этого используйте этот jQuery:
$(document).ready(function() {
$('#button, #back1').click(function() {
$('#box').toggleClass('visible');
});
});
CSS:
.visible { display: block; }
Также был изменен HTML с тремя идентификаторами.
Сделайте анимацию в CSS. Измените, как вы сочтете нужным.