Как мы можем создать окно загрузки с эффектом темного фона

#javascript #ajax #prototypejs

#javascript #ajax #prototypejs

Вопрос:

Мы хотели бы разместить эффект темного фона (обычно мы используем для галереи изображений. ) для загрузки страницы. На самом деле у нас есть HTML-форма, только с текстовым полем и кнопкой отправки. Мы бы просто получали данные из PHP через ajax. здесь мы хотели бы реализовать загрузку изображения с эффектами темного фона. Когда на экране будут напечатаны целые данные, загрузочное изображение с темным фоном вернется к обычному фону.

Спасибо

Роджер

Обновление: — Использование этого кода для получения значения из файла php. Я новичок в Ajax / JS, если кто-нибудь может дать мне структуру кода, это хорошо для нас.

 var anchorUrl2 = 'script.php';
var anchorPars1 = 'sqt=abcsd';
var anchorAjax2 = new Ajax.Updater( 'div-id', anchorUrl2, { method: 'get', parameters: anchorPars1 });
  

Комментарии:

1. Хорошая идея. В чем проблема?

2. посмотрите на это huddletogether.com/projects/lightbox2 , это соответствует моим требованиям. но я не смог реализовать это в нашей программе.

Ответ №1:

  • При отправке формы добавьте div к body тегу
  • Установите положение этого div на фиксированное, ширину и высоту на ширину и высоту окна
  • Назначьте полупрозрачный черный PNG в качестве фона
  • Напишите внутри текст со словами «Пожалуйста, подождите»
  • Используйте функцию обратного вызова, когда запрос ajax выполнен, чтобы удалить этот div

Комментарии:

1. 1 за ответ, который не требует включения огромной библиотеки jQuery

Ответ №2:

Попробуйте это, код должен быть понятным. Это код jquery, но вы можете извлечь из него идею.

 <script type="text/javascript>
  $(document).ready(function(){
    $("#contentToHideWhileLoading").hide();
    $("#contentToShowWhileLoading").show();
    $.get(url, {parameters: anchorPars1}, function(data){
        $("#placeToAppendTo").append(data.dataToAppend);
        $("#contentToShowWhileLoading").hide();
        $("#contentToHideWhileLoading").show();
        $("#placeToAppendTo").show(); // if it wasn't visible yet
    });
  });
</script>
  

Комментарии:

1. на данный момент я не установил lightbox2.

2. Из-за моих меньших знаний в AJAX / JS. Могу ли я узнать, где мы размещаем эти коды на странице.

3. @fmsf — вопрос имеет prototype в качестве одного из своих тегов, поэтому разумно предположить, что он использует библиотеку прототипов. Было бы лучше предложить решение, которое работает с этим, чем сказать ему установить еще одну целую библиотеку.

4. @spudley — ой, не заметил. тогда мои извинения, основные концепции те же. У меня не так много времени, чтобы изменить его прямо сейчас. Я оставлю ответ здесь в качестве ссылки.

5. Мы должны упомянуть его в любом <div> или мы должны сделать его с требуемым именем??