Конфликт с jquery
Вложений: 1
Используется некий javascript для создания адаптивных блоков.
Все хорошо, но как только подключается jquery страница начинает "подергиваться" на пол секунды потом это пропадает. Не подскажите в чем может быть конфликт? Причем в firefox этого "дерганья" не наблюдается. Код: <script type="text/javascript" charset="utf-8"> window.onload = init; window.onresize = init; // Функция показывающая ширину экрана, прикольно же. function ShowUsScreenWidth(){ var fmt = document.documentElement.clientWidth; fmt = fmt - (fmt % 10); document.getElementById('count').innerHTML=fmt+'px'; } var g_count=5; // дефолтное кол-во колонок, генерируемое на сервере function init(){ g_result=document.getElementById("mytable"); if(g_result){ g_tds=g_result.getElementsByTagName("td"); window.onresize=resize; resize(); } } // Считаем кол-во колонок, которое помещается в экран function CountColumns(){ var c=Math.floor(document.documentElement.offsetWidth/(230)); return c>0?c:1; } function resize(){ ShowUsScreenWidth(); //обновляем значение ширины экрана, не относится к скрипту var cols=CountColumns();// кол-во столбцов в таблице if(g_count==cols){return;}//ничего не делать, если кол-во колонок то же, что и ранее g_count=cols; var table=document.createElement("table"); var tbody=document.createElement("tbody"); var rows=g_tds.length/cols; // считаем кол-во строк в таблице var width=100/cols; // ширина каждой ячейки в процентах for(var j=0;j<rows;j++){ var row1=document.createElement("tr"); for(var i=0;i<cols;i++){ if(!g_tds[0]){break;} g_tds[0].style.width=width+"%"; row1.appendChild(g_tds[0]); } tbody.appendChild(row1); } table.appendChild(tbody); table=g_result.appendChild(table);// добавляем новую таблицу var prev=table.previousSibling; if(prev!=null)prev.parentNode.removeChild(prev);// удаляем старую таблицу } </script> Прикладываю полную страничку с подключенным jquery. Заранее большое спасибо за помощь. |
Подёргивания - ещё не причина для конфликта с jquery! =)
Просто страница становится тяжелее, FF лучше других кэширует страницу, вот у него и нет подёргивания, остальные грузят из кэша грубее. Я буду прав, если скажу, что заявленные полсекунды конвульсий браузера - это всё-таки преувеличение, и речь идёт о мгновении? |
Цитата:
|
Такая проблема обычно не является проблемой, но
1. Как вариант можно попробовать назначить init обработчиком ready события, а не onload. Как минимум это не навредит. 2. Можно загрузить белый див поверх всего экрана (background: white; position: fixed; width: 100%; height: 100%; left: 0; top: 0), а когда содержимое страницы загрузится, убрать его. Дёрганья видно не будет, а эффект будет приблизительно тот же, как и когда страница просто загружается. |
Часовой пояс GMT +3, время: 09:58. |