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

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

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

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Размер экрана
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: javaScript
victor
Отправлено: 22 Января, 2008 - 08:49:18
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Помогите пожалуста сделать из скрипта функцию таким образом чтобы при загрузке страницы я мог запустить ее в любом месте. Мне надо сделать стиль который бы уменьшал картинку в зависимотсти от экранна пользователя.
Вот код:
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>

(Отредактировано автором: 22 Января, 2008 - 08:50:31)

 
 Top
Furax
Отправлено: 22 Января, 2008 - 09:14:51
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




victor
Подробнее опиши, чего хочешь. Стиль создаётся динамически? Уменьшает картинку в зависимости от чего?
 
 Top
victor
Отправлено: 23 Января, 2008 - 01:18:39
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Я кажется придумал чего я хочу. Мне надо получить следующую строчку
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;?>" >
'
);

Чтото в этом роде должно получиться. Поправте что не так и добавте команду оставляющуу целое число.

(Отредактировано автором: 23 Января, 2008 - 01:28:14)

 
 Top
Davinchi
Отправлено: 24 Января, 2008 - 01:39:07
Post Id


Full Member


Покинул форум
Сообщений всего: 152
Дата рег-ции: Нояб. 2006  

Карма -2




Вроде как Abs() округляет до целого
 
 Top
Furax
Отправлено: 24 Января, 2008 - 04:25:53
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




*Math.abs()
 
 Top
victor
Отправлено: 28 Января, 2008 - 06:27:18
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Davinchi и Furax Math.abs() - это абсолютное значение.
а мне надо округленное значение тоесть Math.floor()
Я же писал что мне нужно получить целое число.
 
 Top
victor
Отправлено: 28 Января, 2008 - 08:57:02
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




У меня еще один вопрос по поводу функции. Можно ли както узнать что JavaScript отключен?
 
 Top
Furax
Отправлено: 28 Января, 2008 - 11:42:05
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




С помощью JavaScript - нет, ибо сценарии в этом случае ВООБЩЕ не выполняются. Есть такой тег - <noscript>, его содержимое выводится в том случае, когда сценарии отключены. Естественно, вставлять в него сценарий бессмысленно. Так что внутри сценария никаких проверок делать не надо - раз сценарий выполняется, то он точно включен.
 
 Top
victor
Отправлено: 04 Февраля, 2008 - 10:08:58
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Вот что получилось:
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>';
?>
 
 Top
Furax
Отправлено: 04 Февраля, 2008 - 11:44:48
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




victor
Пожалуйста, полный код цикла.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« JavaScript »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0458]     [ 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