При загрузке, у меня выполняется скрипт. Который ровняет по высоте 2 колонки.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}
Для срабатывания данного скрипта вызываю функцию
setEqualHeight($("#main, #block_right"));
Где
#main
#block_right
id элементов которые мне нужно выровнять. Тут все хорошо срабатывает.
Но при загрузки галереи картинки подгружаются некоторое время.
Если вставить setEqualHeight в раздел
$(document).ready(function () {
});
То скрипт срабатывает где то по середине, устанавливая высоту, а картинки продолжают грузиться.
Вставляю в
window.onload = function(){
setEqualHeight($("#main, #block_right"));
}
Но вот незадача, данная конструкция работает в конце загрузки только в браузере chrom. Во всех остальных срабатывает на середине загрузки и происходит выше описанный эффект.
Для срабатывания в IE(и по идее остальных браузерах) функцию setEqualHeight необходимо поместить в низ страницы.
Но если оставить все как есть, то при загрузке в chrom скрипт в низу страницы срабатывает очень рано, и опять вызывает нарушение верстки.
Что бы это исключить, я определяю является ли браузер chrom.
Вот этой строкой.
/chrome/.test(navigator.userAgent.toLowerCase())
Которая выдает false или true.
Таким образом у меня получается.
//в начале страницы
window.onload = function(){
if (/chrome/.test(navigator.userAgent.toLowerCase())) {
setEqualHeight($("#main, #block_right"));
}
}
//в конце страницы
if (!/chrome/.test(navigator.userAgent.toLowerCase())) {
setEqualHeight($("#main, #block_right"));
}
Проверял в браузерах
chrome - работает
EI - работает
FireFox - работает через раз. Возникает преждевременное срабатывание(верстка разезжаеться). Не часто, редко. Понят в какой момент не могу.
Opera - работает аналогично FireFox.
Для загрузки картиной ещё используется.
Colorbox и Lazyload.
Подскажите, как доработать для работы в FireFox, Opera.
А по существу считаю, что слишком много нагородил. Может кто то подскажет решение проще.