JavaScript. Что-то не так с ИЕ

Givandos
На сайте с 25.06.2007
Offline
33
621

Ребята, есть трабла:

<html>

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<script LANGUAGE="javascript">
var getDocumentWidth = function()
{ return (window.innerWidth)?window.innerWidth:((document.all)?document.documentElement.offsetWidth:null); }
function init()
{
open = getDocumentWidth()-719; // Отбрасываем ширину, которая занята другими элементами + 1 пиксель под наш блок.
knopki = document.getElementById('knopki');
kol = Math.floor(open/72); // узнаем количество максимально возможный ЦЕЛЫХ кнопок с картинки-фона
knopki.style.width= kol*72 + 'px'; // Вычисляем общую ширину нашего блока с кнопками
}
</script>

</head>
<body style="margin:0;" OnLoad="init();" OnResize="init();" OnReload="init();">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="485"><img src="" width="485" height="1"></td>
<td width="100%"><div id="knopki" name="knopki" style="border: 1px solid; background: url(polosa.jpg) no-repeat 1px 0; height: 50px; width: 150px;"></div></td>
<td width="233"><img src="" width="233" height="1"></td>
</tr>
</table>
</body>
</html>

Есть в этому всему картинка-фон, разбитая на визуальные кнопки-ячейки одинаковой ширины (в данном случае 72 пикселя). Но возникла трабла с:

1. При изменении ширины экрана в некоторые моменты все же возникает нижний скролл, хотя по идее его быть не должно. Как понимаю, то скрипт к общей ширине берет ешё пару дополнительных пикселей, но откуда - понять не могу :(

2. Самое главное: не работает в Осле :( В остальных браузерах все нормально (кроме скролла), а осел совсем не хочет цеплять.

п.с. С Явой никогда не работал, только немного PHP ну и конечно же HTML, потому вполне возможно что задача банальная, а я ламер :)

dkameleon
На сайте с 09.12.2005
Offline
386
#1
Givandos:
п.с. С Явой никогда не работал

йопт, пальцы бы вам всем поломать!

вот честно, было настроение помочь, но терпеть немогу горе-програмеров, которые даже название языка, на котором пишут, запомнить не могут.

Дизайн интерьера (http://balabukha.com/)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#2
Givandos:
С Явой никогда не работал

где в приведенном примере есть Ява?

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Givandos
На сайте с 25.06.2007
Offline
33
#3

Прошу прощения, но да, знаю, язык - JavaScript, Java - это другое. Но суть это не меняет.

п.с. А пальцы ломать не нужно - мне ими ещё в носу ковыряться :)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#4

Givandos,

Главное, какая цель сего скрипта? Зачем менять размер дива??? если можно просто стиль вписать в TD и все

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5

<script LANGUAGE="javascript">

var getDocumentWidth = function()
{ return (window.innerWidth)?window.innerWidth:((document.all)?document.documentElement.offsetWidth:null); }
function init()
{
var knopki = document.getElementById('knopki');
var open = getDocumentWidth()-719; // Отбрасываем ширину, которая занята другими элементами + 1 пиксель под наш блок.
var kol;

kol = Math.floor(open/72); // узнаем количество максимально возможный ЦЕЛЫХ кнопок с картинки-фона
knopki.style.width= kol*72 + 'px'; // Вычисляем общую ширину нашего блока с кнопками
}
</script>
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Givandos
На сайте с 25.06.2007
Offline
33
#6

T.R.O.N

Цель такая, что нужно в среднюю ячейку при резиновом дизайне (где растягивается только средняя ячейка) подставлять (при возможности, то есть, если у пользователя включен ЯваСкрипт в браузере) картинку-фон, которая представляет из себя полоску с кнопками (визуальными). Если же избегать автоматического подбора, то будет вероятность получить обрезанную кнопку, так как вторая половинка, или же даже маленький кусочек кнопки будет перекрываться картинкой из третьей ячейки. Вот такой вот дизайнерский изврат, который просили по возможности реализовать :)

Givandos добавил 18.11.2008 в 10:53

LEOnidUKG

Ваш вариант работает, спасибо.

Осталась лишь проблема нижнего скролла, но насколько мне понятно, то у меня не совсем правильная функция считывания (добывания, так сказать) ширины окна. Возможно учитывается ширина, выделяемая для правого скролла (там порядка 25 пикселей, и полоса прокрутки появляется примерно на столько же), а нужно её будет отбавлять.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#7
Givandos:
Возможно учитывается ширина, выделяемая для правого скролла (там порядка 25 пикселей, и полоса прокрутки появляется примерно на столько же), а нужно её будет отбавлять

правы. Это первый фактор. Второй - дизайн в XP и Висте. Разница между классическим видом и "фирменным" XP какраз и есть 2 пикс.

Brand from Amber
На сайте с 18.08.2007
Offline
293
#8

Дабы не плодить темы спрошу (с Вашего позволения) тут: Запихнул на скорую руку в БД скипт (екземпл гугл-маповский), и как сказал ТС - что-то не так с ИЕ. Причём в Лисе и Опере всё ОК. В Осле если свернуть, а затем развернуть окошко, тоже всё нормализуется. Есть спецы по Google API - может сталкивались?

Лучший способ понять что-то самому - объяснить это другому.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий