Jquery Эффект Onunload - PullRequest
       12

Jquery Эффект Onunload

1 голос
/ 17 июня 2009

Я хотел бы использовать эффект jquery slideUp, когда пользователь уходит со страницы, просто чтобы страница выглядела круто при закрытии.

Я предполагаю, что мне следует использовать событие onunload, но как я могу отложить закрытие страницы достаточно долго, чтобы эффект завершился до конца.

Одна из опций, которая пришла в голову, - это эффективный захват функции закрытия страницы, сохранение ее в некоторой переменной и последующее ее выполнение после запуска эффекта, но я понятия не имею, как мне это сделать.

Любые предложения или альтернативные идеи приветствуются

Ответы [ 7 ]

4 голосов
/ 17 июня 2009

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

в отношении предотвращения перемещения страницы до завершения анимации, это более серьезная проблема ... любая анимация будет полагаться на setTimeout / setInterval, и страница не будет ждать их завершения перед тем, как уйти.

3 голосов
/ 17 июня 2009

Делать что-либо, кроме закрытия окна, когда пользователи просят, нарушает контракт с пользователем. Окно браузера не ваше, это пользователи, и как бы круто ни был эффект, оно неизбежно раздражает большинство ваших пользователей.

Событие onbeforeunload очень ограничено в своих возможностях. Он должен вернуть строку, которая затем используется, чтобы запросить у пользователя подтверждение о выходе со страницы. Это не будет работать для крутой анимации.

2 голосов
/ 17 июня 2009

Насколько я знаю, единственный способ не дать пользователю покинуть страницу - это событие onbeforeunload, которое нельзя отменить . Вместо этого вы возвращаете строку из этого метода, браузер предлагает пользователю диалог Да / Нет, жизнь продолжается. 276660 имеет больше информации об этом.

Не думаю, что с этим вам повезет больше.

1 голос
/ 17 мая 2010

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

Я бы посмотрел на использование формы слайдера, как упомянуто выше (см., Например, http://webdesignledger.com/tutorials/13-super-useful-jquery-content-slider-scripts-and-tutorials), или просто загружайте области содержимого в ответ на щелчки пользователя.

1 голос
/ 17 июня 2009

Я бы согласился на 100% с ответом Джонатана Фингланда и добавил бы это.

В IE (я не уверен, какие версии поддерживают это, я знаю, что IE6 поддерживал), вы можете использовать некоторые мета-теги , чтобы достичь затухания и т. Д. При выходе со страницы. Тем не менее, это ограничено в браузерах (только IE), поэтому вы застряли для кросс-браузерного использования.

1 голос
/ 17 июня 2009

почему бы и нет, вместо создания"крутого" эффекта, когда простой пользователь хочет уйти с вашего веб-сайта (даже если пользователь закрывает браузер / вкладку события unload будет уволен) и раздражает простого пользователя тем, что ... мешает ему / ей вернуться снова ...

... делает ли «крутой» эффект , когда пользователь впервые заходит на ваш сайт ? как обычный вступительный эффект?

Я сделал это как простую идею, вы можете увидеть это здесь: http://www.balexandre.com/jmfc

0 голосов
/ 08 апреля 2010

Единственный способ задержать закрытие окна - использовать предупреждение. Если это приемлемый компромисс для вашего случая, это действительно задержит разрушение окна в памяти и позволит вашим таймерам страниц исполниться (конечно, если пользователь не закроет всплывающее окно с предупреждением раньше, чем завершится анимация).

Недавно я использовал этот подход, чтобы я мог вызывать метод flex через FABridge (который в противном случае был бы уничтожен до завершения вызова метода flex). Я хотел бы услышать ваши комментарии по этому поводу.

...