|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Необходимость менять картинку в шапке в зависимости отразрешения экрана. |
|
|
Необходимость менять картинку в шапке в зависимости отразрешения экрана.
|
|
Пользователь Сообщения: 98 |
Доброго дня.
Собственно сабж. Цель: Узнавать разрешение экрана и в зависимости от него загружать разные картинки в шапке. Средства. HTML +JS или PHP пробовал так: <script language="JavaScript" type="text/javascript">
if((screen.width <= 1024) && (screen.width > 800))
{
alert ('1 case');
document.getElementById('pikkzhere').src="/pic/1024.png";
}
else
{
alert ('2 case');
document.getElementById('pikkzhere').src="/pic/pic.png" ;
}
</script>
<body topmargin="0" > <table width="90%" border="1" align="center" cellspacing="0" bgcolor="#F6F4F7"> <tr><td colspan=4> <img src='/pic/pic.png' id='pikkzhere'> </td> </tr> Думаю связано с тем, что на момент когда запускается выполнение скрипта, остальной документ ещё не прогружен, а следовательно document.getElementById('pikkzhere').src= и правда не существует. Тогда я попробовал так. <script language="JavaScript" type="text/javascript">
function logotp()
{
if((screen.width <= 1024) && (screen.width > 800))
{
alert ('1 case');
document.getElementById('pikkzhere').src="/pic/1024.png";
}
else
{
alert ('2 case');
document.getElementById('pikkzhere').src="/pic/pic.png" ;
}
}
</script>
<body topmargin="0" onLoad=logotp()> <table width="90%" border="1" align="center" cellspacing="0" bgcolor="#F6F4F7" > <tr><td colspan=4> <img src='/pic/pic.png' id='pikkzhere'> </td> </tr> В связи с чем пребываю в предсуицидальном настроении. Помогите!! Спасибо. |
|
|
------- Отправлено: 18:23, 12-08-2009 |
|
Deadooshka Сообщения: 2566
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 19:13, 12-08-2009 | #2 |
|
Пользователь Сообщения: 98
|
Профиль | Сайт | Отправить PM | Цитировать Sham, Познаний в JS мало очень.
Можете какой-нить простенький примерчик набросать с new Image(); И кстати если прогружать картинки заранее полагаю что объём трафика от страницы вырастет в разы. Относительно второго. А что есил картинок много? скажем 5-8. Что для всех прописывать display:none ? Громоздко выйдет, ондако. Но этот способ сберёт пользовательский траффик. Верно? |
|
------- Последний раз редактировалось Gudy, 13-08-2009 в 09:56. Отправлено: 08:40, 13-08-2009 | #3 |
|
Deadooshka Сообщения: 2566
|
Профиль | Отправить PM | Цитировать Gudy, все равно каждую картинку придется по новой прописывать...
1 случай используется обычно для предзагрузки в кэш браузера всех картинок (вне зависимости от разрешения)... создать картинку можно через document.createElement, или через innerHTML (менять содержимое тега td с картинкой)... как вариант: можно использовать вместо тега img стиль background-image для тега td, который изменяется свойством style.backgroundImage |
|
Отправлено: 10:07, 13-08-2009 | #4 |
|
Пользователь Сообщения: 98
|
Профиль | Сайт | Отправить PM | Цитировать Почему-то всё работает только в IE.
Хром и ФФ скрипт выполняют правильно. Но картинка после его завершения не появляется. в ИЕ всё нормально пашет. Кстати, по поводу бекграунда. Скорее всего, если ячейка пустая, тоесть в ней нет текста, то высота её булет чисто символической и бекграунд не отобразиться. |
|
|
------- Последний раз редактировалось Gudy, 13-08-2009 в 11:45. Отправлено: 11:31, 13-08-2009 | #5 |
|
Пользователь Сообщения: 98
|
Профиль | Сайт | Отправить PM | Цитировать и в догонку. а есть ли способ растянуть картинку-бекграунд ровно на размер того годе она бекграунд (скажем на ячейку таблицы).
Я вроде читал что реализуется это только в css3 |
|
------- Отправлено: 13:25, 13-08-2009 | #6 |
|
Deadooshka Сообщения: 2566
|
Профиль | Отправить PM | Цитировать Цитата Gudy:
Цитата Gudy:
Цитата Gudy:
|
|||
|
Последний раз редактировалось Sham, 13-08-2009 в 14:42. Отправлено: 14:22, 13-08-2009 | #7 |
|
Пользователь Сообщения: 98
|
Профиль | Сайт | Отправить PM | Цитировать Решил задачу так:
<script>
function topimage()
{
if (screen.width <= 800)
{
document.getElementById('logo_area').innerHTML='<img valign=top align=center name=800 src=/pic/800.png />';
}
if((screen.width <= 1024) && (screen.width > 800))
{
document.getElementById('logo_area').innerHTML='<img valign=top align=center name=1024 src=/pic/1024.png />';
}
if((screen.width <= 1152) && (screen.width > 1024))
{
document.getElementById('logo_area').innerHTML='<img valign=top align=center name=1152 src=/pic/1152.png />';
}
if((screen.width <= 1280) && (screen.width > 1152))
{
document.getElementById('logo_area').innerHTML='<img valign=top align=center name=1280 src=/pic/1280.png />';
}
if (screen.width > 1280)
{
document.getElementById('logo_area').innerHTML='<img valign=top align=center name=1366 src=/pic/1366.png />';
}
}
</script>
<link rel="stylesheet" href="/style.css" />
</head>
<body topmargin="0" align=center onLoad="topimage();">
<table width="90%" border="0" align="center" cellspacing="0" >
<tr>
<td width=100% valign="top" "align="center" id="logo_area">
</td>
</tr></table>
коряво конечно столько картинок пользователю в пустую пихать. И ещё коряво смотреть ширину экрана, надо смотреть ширину окна браузера, у меня например пуск справа. так что браузер в разы меньше полного разрешения экрана. ЗЫ. Про ЦСС3 эт я с этим напутал. |
|
------- Отправлено: 20:58, 13-08-2009 | #8 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Как в Укозе сделать логотип в шапке | lom2 | Вебмастеру | 2 | 25-02-2008 18:50 | |
| Интерфейс - [решено] Убрать в окне приветствия необходимость вводить пароль (при вводе пароля - ошибка) | Сова | Microsoft Windows 2000/XP | 5 | 26-12-2007 22:35 | |
| [решено] Как запретить менять разрешение экрана | pipez | Microsoft Windows 2000/XP | 4 | 29-11-2005 10:50 | |
| Необходимость разделить DVD 9 Gb на 2 обычных | Nord Owl | Видео и аудио: обработка и кодирование | 2 | 23-11-2005 15:20 | |
|