Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Анимация процесса загрузки (https://javascript.ru/forum/events/42891-animaciya-processa-zagruzki.html)

IZLOM 13.11.2013 12:42

Анимация процесса загрузки
 
Привет друзья. Есть кнопка :
<input type="button" id="pdfloader" value="Загрузить" onclick="document.location = '/download/rar/99'"/>


Когда ее нажимаешь то через секунд 3-4 выскакивает окно загрузки файла. Мне нужно что бы это время крутилась анимация, ну или кнопка была не рабочая, что бы юзер 1000 раз не нажимал на нее, и не думал что все зависло. Раньше делал это когда пользовался аякс запросом, но тут запрос попроще, а решения найти не могу, что подскажете?

Rise 13.11.2013 13:03

onclick="this.disabled = true; document.location = '/download/rar/99'"

IZLOM 13.11.2013 13:25

Цитата:

Сообщение от Rise (Сообщение 280785)
onclick="this.disabled = true; document.location = '/download/rar/99'"

А что бы потом через несколько секунд кнопка снова стал активна, я вот пробовал такой вариант, но не сработало:
setTimeout('onclick="this.disabled = true; document.location = '/download/rar/99';  setTimeout('this.disabled = false', 2000)"


Что здесь можете посоветовать?

IZLOM 13.11.2013 13:42

Решил такой конструкцией :

function count_second() {
                                        setTimeout(function(){$('#pdfloader').fadeOut('fast')},1);
                                        setTimeout(function(){$('#pdfloader').fadeIn('fast')},3000);
                                        }

IZLOM 13.11.2013 14:12

Подскажите еще когда мне выскакивает окно с предложением открыть или сохранить файл, это эвент? Его можно отследить, что бы все таки кнопка появлялась не по таймингу, а когда окно скачки выскакивало.

mi.rafaylik 13.11.2013 14:50

IZLOM,
Если это input type="file" и окно выбора файла, то отслеживать события можешь так:
1. "mousedown" - нажал на кнопку, но ещё не отпустил.
2. "click" - нажал на кнопку и открылось окно выбора файлов.
3. "change" - файлы выбраны.
http://javascript.ru/tutorial/events...klikov-sobytiy

IZLOM 13.11.2013 14:58

Цитата:

Сообщение от mi.rafaylik (Сообщение 280827)
IZLOM,
отслеживать события input type="file" можешь так:
1. "mousedown" - нажал на кнопку, но ещё не отжал.
2. "click" - нажал на кнопку и открылось окно выбора файлов.
3. "change" - файлы выбраны.

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


mi.rafaylik 13.11.2013 15:06

Да, неправильно Вас понял.
Нужно запустить анимацию, в это время сделать кнопку неактивной, а по открытию окна завершить анимацию и снять лок?

IZLOM 13.11.2013 15:15

Цитата:

Сообщение от mi.rafaylik (Сообщение 280835)
Да, неправильно Вас понял.
Нужно запустить анимацию, в это время сделать кнопку неактивной, а по открытию окна завершить анимацию и снять лок?

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

Rise 13.11.2013 15:37

<input type="button" id="pdfloader" value="Загрузить" />

<script>
window.onload = function() {
	var button = document.getElementById('pdfloader');
	document.body.onblur = function(){ button.disabled = false };
	button.onclick = function(){
		this.disabled = true;
		document.location = '/download/rar/99';
	};
}
</script>


Часовой пояс GMT +3, время: 22:53.