Профиль пользователя. Размер окна
Раз Вы работаете с сайтами на uCoz, то уже в курсе, что профиль пользователя открывается в отдельном окне. Как правило, содержимое в него не помещается и пользователю приходится использовать полосы прокрутки или менять размер окна вручную, чтобы увидеть все целиком. Вывод: нужно автоматически изменить размер окна профиля. В шаблоне есть скрипт, который автоматически подгоняет размер окна с профилем под определенную ширину, но очень и очень далеко от совершенства. Я предлагаю Вам универсальное решение этой проблемы.
Использовать мы будем тот же JavaScript. К счастью, jQuery на uCoz используют по умолчанию, что еще больше упросит задачу. Алгоритм будет следующий: вычисляем ширину плавающей панели, определяем ширину контейнера с данными и задаем окну размер, который побольше. Естественно, при вычислениях учитываются элементы самого окна, такие как панели инструментов, границы и т.п.
Первый шаг: поместите все содержимое <body> в контейнер с любым понятным вам классом или ID. Я выбрал для этого <div class="profile">, а Вы можете использовать, что хотите, только в тексте скрипта измените «позывной».
Шаг второй: поместите готовый скрипт в конец шаблона «Персональная страница пользователя», а старый (найти его будет домашним заданием) — уберите.
<script type="text/javascript">
$(function() {
var rr = setInterval(function() {
<!-- Ждем пока появится панель с меню и определяем его ширину -->
if($("#puzadpn").length > 0) {
//Суммируем ширину внутренних элементов, включая отступы
ww = $(".u-menucont").width() + $(".pbarContainer").outerWidth() + parseInt($("#uzadmp").css("paddingLeft")) + parseInt($(".pbarContainer").css("right"));
$("#uzadmp").children("div").each(function() {
if($(this).attr("id") == '') ww += $(this).outerWidth();
});
//Получаем ширину внешних элементов окна
ww = ww + window.outerWidth - window.innerWidth;
<!-- Ширина контейнера с данными определяется аналогично -->
pw = 0;
$(".profile").children().each(function() {
pw += $(this).outerWidth();
});
//Вычисляем отступы контейнера
pw += $(".profile").outerWidth() - $(".profile").width();
//Определяем высоту окна
wh = ($(".profile").height() + 45) + window.outerHeight - window.innerHeight;
// Меняем размер
if(ww > pw)
window.resizeTo(ww, wh);
else
window.resizeTo(pw, wh);
clearInterval(rr);
}
}, 1000);
});
</script>
Скрипт получился длиннее, чем я обычно выкладываю, но зато положенную на него функцию выполняет на 100%. Вам больше не придется каждый раз корректировать цифры в шаблоне, если разработчики добавят/уберут на плавающей панели какие-то элементы или то же случится с контейнером данных — скрипт будет менять размер окна профиля автоматически, в зависимости от содержимого.