Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2012, 19:23
Аватар для Mike_Kharkov
Кандидат Javascript-наук
Отправить личное сообщение для Mike_Kharkov Посмотреть профиль Найти все сообщения от Mike_Kharkov
 
Регистрация: 04.01.2012
Сообщений: 143

Плагин чекбокса на JS(Тормоз при смене картинки)
Здравствуйте.
Есть такая страничка:
http://yamaradg.narod2.ru/history/Yo...vel/index.html
На ней имеется один единственный чекбокс:
http://yamaradg.narod2.ru/history/checkbox.jpg
Когда файлы грузятся с винта то проблем не имеется - но при загрузке на хостинг - в IE происходит 'Тормоз' при смене картинок!?(во время клика)
Тоесть - сначала исчезает одна, затем пустое пространство и уже по истечении 0.5 секунд происходит появления другого бэкграунда.
Вопрос:
Почему это происходит и как это можно устранить?
P.S. Сам js код выглядит следующим образом:
// Dean Edwards/Matthias Miller/John Resig

function init() {
    // выходим, если функция уже выполнялась
    if (arguments.callee.done) return;

    // устанавливаем флаг, чтобы функция не исполнялась дважды
    arguments.callee.done = true;

    // что-нибудь делаем
};

/* для Mozilla/Firefox/Opera 9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}

/* для Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"javascript:void(0)\"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
    if (this.readyState == "complete") {
	init(); // вызываем обработчик для onload
    }
};
/*@end @*/

/* для Safari */
if (/WebKit/i.test(navigator.userAgent)) { // условие для Safari
    var _timer = setInterval(function() {
	if (/loaded|complete/.test(document.readyState)) {
	    clearInterval(_timer);
	    init(); // вызываем обработчик для onload
	}
    }, 10);
}

/* для остальных браузеров */
window.onload = init;

window.onload=function() {
        myCheckbox.checked = true;
};
var myCheckbox = document.getElementById('myCheckbox');
var virtualCheckbox = document.getElementById('virtual_checkbox');

virtualCheckbox.onclick = function(){
        if (myCheckbox.checked == true) {
        	myCheckbox.checked = false;
        	virtualCheckbox.style.backgroundImage='url(images/checkoff.png)';
        }
        else if (myCheckbox.checked == false) {
        	myCheckbox.checked = true;
        	virtualCheckbox.style.backgroundImage='url(images/checked.png)';
        }
};

myCheckbox.onclick = function(){
        if (myCheckbox.checked == true) {
        	virtualCheckbox.style.backgroundImage='url(images/checked.png)';
        }
        else if (myCheckbox.checked == false) {
        	virtualCheckbox.style.backgroundImage='url(images/checkoff.png)';
        }
};

Заранее благодарен за ответ...

Последний раз редактировалось Mike_Kharkov, 14.03.2012 в 19:34.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2012, 19:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Лень смотреть код, но скорее всего тормоз из-за того что вторая картинка грузится с сервака, что занимает определённое время. Все нормальные люди в наше время для мелких элеменов используют спрайты.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение значения input при смене значения select galart jQuery 4 30.01.2015 19:39
Обновление картинки при клике Обновить Cerver Общие вопросы Javascript 15 17.02.2012 15:57
При наведении курсора смена картинки и всплывающая подсказка sly Общие вопросы Javascript 0 06.06.2010 17:53
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16
Смена картинки при перезагрузке + наведении Мария Элементы интерфейса 2 22.08.2009 14:57