Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Размер экрана
ТвойWeb » WebMaster класс » JavaScript » Размер экрана

Страниц (2): [1] 2 »
 

1. victor - 22 Января, 2008 - 08:49:18 - перейти к сообщению
Помогите пожалуста сделать из скрипта функцию таким образом чтобы при загрузке страницы я мог запустить ее в любом месте. Мне надо сделать стиль который бы уменьшал картинку в зависимотсти от экранна пользователя.
Вот код:
CODE:

<script language="JavaScript">
// Определение браузера
IE = (document.all); // Internet Explorer?
NC = (document.layers); // Netscape?
Opera = (document.getElementById); // Opera?
// Получаем высоту рабочей области браузера
if (IE || Opera) hsend = document.body.clientHeight;
if (NC) hsend = window.innerHeight;
//alert (hsend);
//Получаем ширину рабочей области браузера
if (IE || Opera) wsend = document.body.clientWidth;
if (NC) wsend = window.innerWidth;

c // допаолнтельный параметр на сколько уменьшить

col=(wsend-c);
//alert (col);
document.write( "<style> #img {width:" + col + "px;}</style>" );
</script>
2. Furax - 22 Января, 2008 - 09:14:51 - перейти к сообщению
victor
Подробнее опиши, чего хочешь. Стиль создаётся динамически? Уменьшает картинку в зависимости от чего?
3. victor - 23 Января, 2008 - 01:18:39 - перейти к сообщению
Я кажется придумал чего я хочу. Мне надо получить следующую строчку
CODE:

<img border=0 src="./resize.php?img=<? print $img; ?>&mW=50&mH=50" alt="<? print $alt;?> title="<? print $alt;?>" >


файлик resize.php уменьшает пропорционально картинку

Мне нужно сделать функцию которая бы определяла рабочую область браузера.
Для этого я подаю в тело функции следующие параметры:

Эталон окна (Etwindow) - его я вычисляю у себя верстая страничку допустим 1024 ширина
Эталон ширины картинки (EtW) - я задаю нужный мне размер ширины
Эталон высоты картинки (EtH) - я задаую нужный мне размер высоты.

Функцию я должен вызвать в любом месте страницы допустим как то так:
<div><script> resize(Etwindow, EtW, EtH) </script></div>

В нутри функции Etwindow являеться 100% для отображения странички
Получая новое значение функция делает расчет соотношения данных и выдает новые размеры для картинок.
Надо еще написать условие если полученное значение меньше то полученное значение делим на эталон иначе эталон делим на полученное значение а именно
CODE:

w=EtW;
h=EtH;

if (Etwindow>wsend) {r=Etwindow/wsend;
w=EtW/r;
h=EtH/r;
}

else {r=wsend/Etwindow;
w=EtW*r;
h=EtH*r;
}


Пример:
Эталон окна равен 1024
функция получила значение ширины 700
Находим разницу: 1024/700=1,5 (приблизительно)
Теперь ширину и высоту картинки делим на 1,5 оставляем только целое число и делаем строчку:
CODE:

r=Etwindow/wsend;
w=EtW/r;
h=EtH/r;

document.write(
'
<img border=0 src="./resize.php?img=<? print $img; ?>&mW='+w+&mH='+h+'" alt="<? print $alt;?> title="<? print $alt;?>" >
'
);

Чтото в этом роде должно получиться. Поправте что не так и добавте команду оставляющуу целое число.
4. Davinchi - 24 Января, 2008 - 01:39:07 - перейти к сообщению
Вроде как Abs() округляет до целого
5. Furax - 24 Января, 2008 - 04:25:53 - перейти к сообщению
*Math.abs()
6. victor - 28 Января, 2008 - 06:27:18 - перейти к сообщению
Davinchi и Furax Math.abs() - это абсолютное значение.
а мне надо округленное значение тоесть Math.floor()
Я же писал что мне нужно получить целое число.
7. victor - 28 Января, 2008 - 08:57:02 - перейти к сообщению
У меня еще один вопрос по поводу функции. Можно ли както узнать что JavaScript отключен?
8. Furax - 28 Января, 2008 - 11:42:05 - перейти к сообщению
С помощью JavaScript - нет, ибо сценарии в этом случае ВООБЩЕ не выполняются. Есть такой тег - <noscript>, его содержимое выводится в том случае, когда сценарии отключены. Естественно, вставлять в него сценарий бессмысленно. Так что внутри сценария никаких проверок делать не надо - раз сценарий выполняется, то он точно включен.
9. victor - 04 Февраля, 2008 - 10:08:58 - перейти к сообщению
Вот что получилось:
CODE:

<script language="JavaScript">

function ResizeWindows(img, alt, Etwindow, EtW, EtH) {

// Определение браузера
IE = (document.all); // Internet Explorer?
NC = (document.layers); // Netscape?
Opera = (document.getElementById); // Opera?
// Получаем высоту рабочей области браузера
if (IE || Opera) hsend = document.body.clientHeight;
if (NC) hsend = window.innerHeight;

//alert (hsend);
//Получаем ширину рабочей области браузера
if (IE || Opera) wsend = document.body.clientWidth;
if (NC) wsend = window.innerWidth;

w=EtW;
h=EtH;

if (Etwindow > wsend) {r=Etwindow/wsend;
w=Math.floor(EtW/r);
h=Math.floor(EtH/r);
}

else {r=wsend/Etwindow;
w=Math.floor(EtW*r);
h=Math.floor(EtH*r);
}

//alert (w);
document.write('<img border=0 src="./resize.php?img='+img+'&mW='+w+'&mH='+h+'" alt="'+alt+'" title="'+alt+'" >' );

};


Вызываю через php, проблема теперь заключаеться в том что при обработке 6 фоток. он выводит только 5 хотя код просматриваешь все шесть прописаны. Что посоветуете:
CODE:

<?
print '<script> ResizeWindows("'.$img_k[$i].'", "'.$alt.'", 1136, 138, 194); ';
print '</script>';
print '<noscript> ';
print '<img border=0 src="./resize.php?img='.$img_k[$i].'&mW=138&mH=194" alt="'.$alt.'" title="'.$alt.'" >';
print '</noscript>';
?>
10. Furax - 04 Февраля, 2008 - 11:44:48 - перейти к сообщению
victor
Пожалуйста, полный код цикла.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0285]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33