Кажется, работает следующее:
$('#left-bg, #right-bg').click(
function(){
$(this).animate({'width': '100%'},600).siblings().animate({'width':'0'},600);
});
Хотя я не уверен, как вы планируете вернуть «другое» div
.
Демоверсия JS Fiddle .
Отредактировано , чтобы добавить кнопку (через jQuery), которая позволяет обоим div
s вернуться к исходным размерам:
$('#left-bg, #right-bg').click(
function(){
$(this).animate({'width': '100%'},600).siblings().animate({'width':'0'},600);
$('<button class="show">Show all</button>')
.appendTo('#wrapper');
});
$('.show').live('click',
function(){
$('#left-bg').animate(
{
'width': '50%'
},600);
$('#right-bg').animate(
{
'width': '50%'
},600);
$(this).remove();
});
Обновлена JS Fiddle .
Отредактировано для решения вопроса, оставленного OP в комментариях:
Есть ли способ перенаправить страницу после завершения анимации?
Да, просто добавьте строку window.location.href = "http://path.to.url.com/";
$('#left-bg, #right-bg').click(
function(){
$(this).animate({'width': '100%'},600).siblings().animate({'width':'0'},600);
$('<button class="show">Show all</button>')
.appendTo('#wrapper');
window.location.href = "http://www.google.com/" // <-- this line redirects.
});
$('.show').live('click',
function(){
$('#left-bg').animate(
{
'width': '50%'
},600);
$('#right-bg').animate(
{
'width': '50%'
},600);
$(this).remove();
});
Обновлен JS Fiddle .
Отредактировано в ответ на сообщение об ошибке (в комментариях):
Еще одна ошибка (простое исправление) заключается в том, что каждый раз, когда вы нажимаете на любой из элементов div, он создает новыйкнопка.Скажем, вы нажали на левую половину, и она расширилась и заполнила страницу, и т. Д., А затем вы снова нажали на нее (теперь она где-то на странице).Он попытается добавить вторую кнопку.
Чтобы предотвратить добавление второй кнопки к div
, просто добавьте if
:
$('#left-bg, #right-bg').click(
function(){
if (!$('.show').length) {
$(this).animate({'width': '100%'},600).siblings().animate({'width':'0'},600);
$('<button class="show">Show all</button>')
.appendTo('#wrapper');
window.location.href = "http://www.google.com/" // <-- this line redirects.
}
});
, которая будет толькодобавьте button
или действительно анимируйте div
s, пока селектор $('.show')
возвращает нет совпадений.
Однако, если вы также перенаправляете на другую страницу с помощьющелкнув по кнопке, это не должно быть проблемой в любом случае, поскольку ни один из jQuery на исходной странице не будет отображать / иметь возможность доступа к странице, на которую перенаправлен пользователь (если это не страница в вашем собственном домене, и вы неявно выбран для добавления того же button
).