|
|
|
| Пожалуйста помогите. Надо сделать загрузку в div через jQuery, пока грузиться надо отображать другой слой типа "инфа грузиться - ждите".
на странице есть два div - первый фформа, второй - картинка и текст инфа грузиться...
Как сделать? | |
|
|
|
|
|
|
|
для: kailDeSazerland
(01.08.2008 в 18:09)
| | Если правильно понял, то надо сделать так:
1. По событию onload выполняется функция, которая выводит информацию в нужный div (этому div`у даёшь свой id).
2. В нужном диве делаешь ещё один див с id допустим download и туда пихаешь анимацию с надписью "Загрузка" (ну или какую хочешь) или вместо анимации вставляешь просто текст.
3. В функции, которая выводит информацию в нужный div прописываешь инструкции для вывода нуной инфы в этот div и в конце функции дописываешь
document.all.id-второго-дива.style.display = "none";
|
Вроде делается так, по крайней мере как-то делал наподобие сам и всё работало. Если надо, могу скинуть код. | |
|
|
|
|
|
|
|
для: Desh
(01.08.2008 в 21:18)
| | Очень буду благодарен, если скинешь код | |
|
|
|
|
|
|
|
для: kailDeSazerland
(02.08.2008 в 08:27)
| | 1. Создаём в нужном месте два div`a:
<div id="downloaddiv"> // div, в который будет загружаться информация
<div id="downloadtext"> // div, в котором будет отображаться текст, что инфонрамация грузится
Загрузка...
</div>
</div>
|
2. В <body> пишем onload="javascript: downloadfunc(); ", получается так:
<body onload="javascript: downloadfunc(); "> // помимо onload в <body> могут быть и другие его атрибуты
|
3. Пишем три функции на JS, которые и будут осуществлять загрузку (я так понял jQuery нужна для испольхования Ajax), вывод в div + функцию определения браузера, т.к. нам необходимо использовать в функции загрузки информации innerHTML, которая в IE работает немного некорректно и вместо неё для IE6 используем outerHTML, а для остальных браузеров используем innerHTML(т.к. в Firefox outerHTML не работает). Их лучше поместить в отдельный js файл и просто подключить в заголовке в HTML-коде:
// Функция определения IE
function detectIE()
{
var agent = navigator.userAgent.toLowerCase();
var i = agent.indexOf('msie');
if (i != -1) return parseFloat(agent.slice(i+5))
return false;
}
// Функция вывода информации в div
function viewdiv(data)
{
var block = document.getElementById('downloaddiv');
var IEVersion = detectIE();
if(IEVersion)
{
block.outerHTML += data;
}
else
{
block.innerHTML += data;
}
document.all.downloadtext.style.display = "none";
}
// Функция, которая загружает информацию
function downloadfunc()
{
$.post('handler.php', { lib: 0 }, viewdiv);
}
|
Где функция downloadfunc посредством Ajax ображается к php-файлу handler.php (в нём вы можете прописать необходимые инструкции, которые могут возвращать текст из базы данных к примеру), а функция viewdiv выводит полученную информацию в div а в конце делает невидимым див с надписью "Загрузка". Самая первая функция (detectIE) определяет, является ли браузер IE или нет.
Вроде так. Если что-то не будет работать или нужно будет по немного по-другому организовать, то пишите) Но основу дал, подобный пример использовал в своих целях и всё работало. | |
|
|
|
|
|
|
|
для: Desh
(02.08.2008 в 11:03)
| | Все клево! спа! А как указать в какой кодировке подгружаемая инфа | |
|
|
|
|
|
|
|
для: kailDeSazerland
(02.08.2008 в 11:14)
| | Если не изменяет память, то надо указать кодировку с помощью <meta> в php-файле при выводе информации. Или в основном HTML-файле. У меня лично при указании кодировки в <meta> в основном HTML-файле всё выводилось как надо. | |
|
|
|