|
|
|
| У меня проблема. Есть фотоальбом http://iisus-hristos.com/albom_andrej/index.html
Всё работает. Но вот когда нажимаешь на картинку появлется большая. Она появляться то появляется но смещается в окне вниз и вправо. Размер задан точно. Как сделать чтобы она встала именно по центру. Там сейчас вот такое описание стоит для каждой.
<img src="46.jpg" width="202" height="120" style="cursor:hand;" onclick="window.open('46b.jpg','','width=969,height=600');return false;"/> | |
|
|
|
|
|
|
|
для: Feniks2008
(12.06.2008 в 12:41)
| | <table>
<tr align=center><td>
<img src="46.jpg" width="202" height="120" style="cursor:hand;" onclick="window.open('46b.jpg','','width=969,height=600');return false;"/>
</td></tr>
</table> | |
|
|
|
|
|
|
|
для: DEM
(12.06.2008 в 12:44)
| | <tr align=center> - что за бред!
в тэге img пишем:
onClick="return imgWin2('46b.jpg')" target=_new style="cursor: pointer;"
|
и размещаем это в коде страницы:
<script>
function imgWin2(img)
{
var wn=window.open('photos/view_picture.php?'+escape(img),'win','resizable,width=400,height=200,screenX=0,screenY=0,top=100,left=100')
wn.focus()
return false
}
</script>
|
а вот файл view_picture, его можно и html и php сделать:
<style type=text/css><!--
body,img,table,tr,td{margin:0px;padding:0px;border:0px;text-align:center;vertical-align:middle}
--></style>
<meta http-equiv=Content-Type content="text/html; charset=windows-1253">
<body onLoad="if(d.images['i'])adjustWin()" leftmargin=100 topmargin=100 marginwidth=100 marginheight=100>
<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>
<tr><td><script>
var d=document
resizeTo(400,300)
function adjustWin(){resizeTo(d.images['i'].width+30,d.images['i'].height+50)}
var l=location.search
if(l.length>1){
var imgPath=unescape(location.search.substring(1,location.search.length));
var im=new Image
im.src=imgPath
d.write('<img name=i src="'+imgPath+'">')
}
else {d.write('No picture')}
</script></td></tr></table>
|
| |
|
|
|
|
|
|
|
для: elenaki
(12.06.2008 в 12:51)
| | elenaki вы опять свой греческий подсовываете, его опять добросовестно скопируют, и опять не будут понимать, откуда... )
Можно просто (текущее разрешение - размер изображения) / 2. | |
|
|
|
|
|
|
|
для: sim5
(12.06.2008 в 13:40)
| | там еще есть отступы для шапки и границ окна. а насчет греческого - пусть думают, прежде,
чем тупо копировать. a если текста в окне не будет, то и кодировка моя не повредит :). | |
|
|
|
|
|
|
|
для: elenaki
(12.06.2008 в 13:52)
| | Да, а про почту читали? Зачем греческий вирус по форуму разбрасывать?))
Ну и что, что отступы, я о центрировании нового окна. | |
|
|
|
|
|
|
|
для: sim5
(12.06.2008 в 14:19)
| | народ, как же всётаки сделать. Попроще бы. А то я совсем закопалась. Текста там нет. Просто картинка и всё.
:)) | |
|
|
|
|
|
|
|
для: Feniks2008
(12.06.2008 в 21:49)
| | А чем вам код elenaki не нравится? Да и зачем изображение центрировать в окне. Если сделать так (в коде открываемого окна):
function adjustWin(){resizeTo(d.images['i'].width,d.images['i'].height)}
<style type=text/css>
body,img {margin:0px;padding:0px;border:0px;}
</style>
<body onLoad="if(d.images['i'])adjustWin()">
|
И убрать из кода таблицу, то рамер окна будет равен размеру изображения. | |
|
|
|
|
|
|
|
для: Feniks2008
(12.06.2008 в 21:49)
| | Дело не в наличии/отсутствии текста.
Дело в другом. Разъясняю.
Чтобы отцентровать новое окно, необходимо знать 4 (четыре) точных размера:
1. высоту экрана монитора в пикселях ECRAN_H
2. ширину экрана монитора в пикселях ECRAN_W
3. высоту окна в пикселях OKNO_H
4. ширину окна в пикселях OKNO_W
Зная все эти четыре значения, вы четко сможете рассчитать координаты верхнего левого угла нового окна:
По высоте = (ECRAN_H - OKNO_H) / 2
По ширине = (ECRAN_W - OKNO_W) / 2
Высоту и ширину экрана монитора - ECRAN_H и ECRAN_W - узнать вы сможете легко:
ECRAN_W = screen.availWidth;
ECRAN_H = screen.availHeight;
А вот с точными размерами окна надо немного помучаться.
Там две (вполне решаемые) проблемы:
а) всякий браузер имеет предустановленные ВНУТРЕННИЕ отступы в окне (padding и margin). И эти отступы в разных браузерах различны. И их надо УЗНАТЬ.
б) всякий браузер имеет разную ширину ВНЕШНИХ БОРДЕРОВ (особливо ВЕРХНИЙ и НИЖНИЙ - у каждого пользователя сверху и снизу может быть всё, что ему хочется - всякие разные панели браузера, строка состояния...). И величину всех этих бордеров браузера тоже надо УЗНАТЬ.
Для этого надо один раз открыть НОВОЕ окно со специальным JScript'ом, который все эти размеры быстренько определит.
Для вашего случая могу предложить, например, следующий вариант: когда пользователь заходит на страницу, ему открывают окно, в котором написано: "Для просмотра фотографий в реальном размере кликните по маленькой фотографии" ну и ещё помещена будет кнопка "Закрыть окно".
Как только это предварительное окошко откроется, ваша страница будет иметь все данные для того, чтобы потом чётко отцентровывать все открывающиеся окна, исходя из реальных размеров помещенных в них фотографий.
Если этот вариант вас устроит - "свистните", напишу код.
PS. Возможен и ещё один вариант - никакого предварительного окошка не делать, самое первое окно с большой фотографией откроется в виде "как получится", а вот все последующие уже будут четко отцентрованы (и внутри окна, и само окно относительно экрана монитора). | |
|
|
|