Jump to content
  • 0

hover моргает


Barsam
 Share

Question

Коллеги, здравствуйте!

Столкнулся с такой проблемой. Есть <input type="button">. У кнопки есть background и background:hover.

При наведении background заменяется на background:hover, но так как изображения hover нет в кеше, в момент замены кнопку дёргает.

Сразу оговорюсь, что применение спрайтов недопустимо.

Если кто-нибудь знает решение, просьба поделиться. Заранее спасибо за помощь.

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

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

А подложить одну из картинок под кнопку, и делать кнопку то непрозрачной, то прозрачной — не вариант?

Может быть и вариант (этого я не пробовал), но будет ли подгружаться img при opacity: 0, вот это под большим сомнением. Да решение кажется слишком сложным, потому что в проекте таких кнопок около 10, и все их перевёрстывать, долго.

А насчёт применения скриптов... Я один пробовал. Не сработало. В данный момент ищу рабочий.

Link to comment
Share on other sites

  • 0

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

А так пробовали?

http://jsfiddle.net/Radiocity/q8Nht/

Извините, я не понял. Это как? Может вы не то прислали.

Сразу оговорюсь, что применение спрайтов недопустимо.

Но самое логичное применить спрайты....

А еще можно сделать прелоад на js в гугл вагон решений

Если Вас не затруднит, приведите пример работающего JavaScripta.

Только что встраивал скрипт, не помогло.

Link to comment
Share on other sites

  • 0

____________________________________________________________________________

Всем спасибо за участие. Проблема не решена, но ниже указанный плагин работает (для новичков: если будете использовать, не забудьте подключить jQuery).

(в моем случае из-за настроек сервера изображения не кешируются, но это уже проблема админов).


(function ($) {
var cache = [];
$.preLoadImages = function () {
var args_len = arguments.length;
for (var i = args_len; i--; ) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}
})(jQuery)
jQuery.preLoadImages("/new/images/hover_1.png", "/new/images/hover_2.png", "/new/images/hover_3.png");

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