2013-02-19 2 views
4

При первой загрузке домашней страницы моего веб-сайта, основанного на jQuery Mobile, он отображается как 1 секунда перед обработкой jQuery Mobile, после чего страница становится пустой в течение 1 секунды, а затем, выполняется окончательная визуализация страницы, позволяющая отображать последнюю страницу. Это дает некоторый эффект blink, которого я хочу избежать, особенно потому, что, например, все элементы, которые jQuery Mobile необходимо разборки, видны в течение первой секунды (например, всплывающие окна не скрыты и т. Д.).Скрыть первую загруженную страницу jQuery до полной загрузки

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

Благодарим заранее.

ответ

0

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

<body> 
    <script type="text/javascript"> 
document.body.style.display = 'none'; 
</script> 
... 
</body> 
+3

'display: none' может помешать работе некоторых JS, особенно если вы пытаетесь измерить размеры. Использование «видимости: скрытый» может быть лучшим вариантом. –

+0

Это правда. В моем случае я не работаю с размерами с JS, поэтому я не сталкивался с проблемой, но «видимость: скрытая» - определенно хорошая альтернатива. – Kalvn

4

Вы можете использовать дисплей none на корпусе, а затем привязать прослушиватель событий к странице на первой странице.

Пример:

HTML:

<body style="display:none"> 
<div id="#start" data-role="page"></div> 
</body> 

JS:

$("#start").one("pageinit",function(){ 
    $("body").show(); 
});