Jump to content
  • 0

Предварительная загрузка невидимых элементов страницы?


eVErl@Sting
 Share

Question

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

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

Вот пример HTML кода:

<td width="135" height="135">
<a href="#" class="d15" onfocus="this.blur()"></a></td>

Вот CSS:

a.d15:link { background: url(images/catalog_content_15.png); display: block; width: 135px; height: 135px; }
a.d15:hover { background: url(images/catalog_content_15h.png); display: block; width: 135px; height: 135px; }
a.d15:active { background: url(images/catalog_content_15a.png); display: block; width: 135px; height: 135px; }
a.d15:visited { background: url(images/catalog_content_15.png); display: block; width: 135px; height: 135px; }

Я попробывал прописать в коде страницы даже вот это:

<div style="position: absolute; display: none"><img src="images/catalog_content_15h.png"></div>
<div style="position: absolute; display: none"><img src="images/catalog_content_15a.png"></div>

Думал что картинки будут подгружатся и не показыватся, врезультате они не подгружаются.

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

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

В Сафари, ФФ и Хроме все ок.

Да, плс, нулевой фрейм не предлогать!

Edited by eVErl@Sting
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Ну с нулевым фрэймом это что-то из прошлой жизни...

Самый распространенный сейчас способ - спрайты. Т.е. все состояния кнопки находятся в одной картинке, просто на разных позициях, а при hover, active и пр. вы просто меняете положение бэкграунда.

Link to comment
Share on other sites

  • 0

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

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

Link to comment
Share on other sites

  • 0
И top:-9999px тоже не помешает.

Нафига?

Обычно такие блоки ложат в самом конце html документа, перед закрывающим тэгом </body>. Вот если его на абсолют и только left:-9999px, то внизу будет свободное пространство равное высоте этого блока. Он хоть и на абсолюте, но всеравно потянет бади (аналогично блоки на абсолюте дают дополнительный скролл справа). Поэтому top:-9999px непомешает :)

Я если честно не пробовал, но мне кажется можно это линком присоединить, как стиль, например.

Можна спросить - куда вы стилями картинки будете цеплять? Создавать элементы и на них (на один элемент один бг)? Не проще это все через <img src="" /> загружать как предложил Great Rash?

Link to comment
Share on other sites

  • 0
Обычно такие блоки ложат в самом конце html документа, перед закрывающим тэгом </body>. Вот если его на абсолют и только left:-9999px, то внизу будет свободное пространство равное высоте этого блока. Он хоть и на абсолюте, но всеравно потянет бади (аналогично блоки на абсолюте дают дополнительный скролл справа). Поэтому top:-9999px непомешает

А, ну в таком случае конечно не помешает. Правда я обычно подобные блоки в самом верху вставляю.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy