Страница 11 из 14

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 9:32
Владимир
Ну вот, вроде все коррективы внес - http://colormusic.ru/use/js/img-pop.js
К сожалению ничего не изменилось... В ИЕ все отлично, а в ФФ - тот же глюк.
http://www.howtocreate.co.uk/tutorials/ ... wserwindow посмотрел, но для меня пока это выше моего понимания, я этот сайт начал делать - первый раз с ХТМЛ познакомился... Пока только какие-то азы освоил. Весь этот сайт создан лишь благодаря советам спецов с вашего форума, вот уже 11-я страница советов пошла - за что всем еще раз огромное спасибо.
Я конечно мало что понимаю в скриптах, но по-моему var cliWidth - создается, но потом нигде не используется, то же и var cliHeight , или как-то они все-таки работают?
Конечно, очень хочется добиться нормальной работы, ибо так конечно гораздо приятнее появляется - сразу в нужном месте. Однако, если этот глюк победить не удастся - придется вернуться к исходному варианту - пусть выпрыгивает из угла, не очень красиво, но в обеих браузерах однотипно работает...
Вобще-то какой-то странный глюк. Первый раз координаты картинки в ФФ определяются неправильно, однако, если ее закрыть, то начиная со второго раза все отлично. Если сменить картинку на другую - то та же песня ...

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 12:33
Muerto
Проще всего размеры картинки добавить в название большой картинки и позиционировать от них. Допустим:
название большой картинки algair_800x600.jpg, тогда скрипт приобретает такой вид:
Код: Выделить всё
function showPic(pic){
//получаем размеры видимой части окна в зависимости от браузера.
var cliWidth = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientWidth:top.document.body.clientWidth;
var cliHeight = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientHeight:top.document.body.clientHeight;
// проверяем не показывается ли в данный момент какая-нибудь большая картинка и если да - уничтожаем ее
if(top.document.getElementById("picture")){top.document.body.removeChild(top.document.getElementById("picture"));}
// создаем див и вставляем в него нашу картинку
var ppic = top.document.createElement("div");
ppic.setAttribute("id","picture");
ppic.style.position = "absolute";
ppic.style.zIndex = "2";
ppic.style.color = "#000";
ppic.style.backgroundColor = "#e0dfe3";
ppic.style.border = "2px outset #fff";
ppic.style.padding = "10px 10px 10px 10px";
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + img.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";
top.document.body.appendChild(ppic);
ppic.onclick = function(){top.document.body.removeChild(this)};
ppic.style.top = parseInt(top.document.body.clientHeight/2 - ppic.offsetHeight/2) + top.document.body.scrollTop + "px";
ppic.style.left = parseInt(top.document.body.clientWidth/2 - ppic.offsetWidth/2)+ "px";
}

Ну и онлоад можно выкинуть.
Конечно по уму это регуляркой делать, а не сплитом, но нет времени. В общем, я идею подал...

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 14:31
WereWolf
Насколько я понимаю - фф размеры картинки как раз определяет правильно, поэому нет смысла их пеередавать в функцию.
Вроде бы проблема с получением размера видимой области браузера...так как боди получается не вся страница а фрэйм, который имеет размеры 250 на 220, что-то около того. В ие для этого и используется top.document а вот как к этому относится фф? И почему со второго раза всё нормально?

Владимир - ты не мог бы вставить alert(cliWidth); alert(cliHeight); в самый конец функции showpic()
очень любопытно какие цифры выдаст ие и что фф на первый и второй раз. Может это чего-нить прояснит.

и кстати ты не заменил
Код: Выделить всё
ppic.style.top = parseInt(top.document.body.clientHeight/2 - ppic.offsetHeight/2) + top.document.body.scrollTop + "px";
ppic.style.left = parseInt(top.document.body.clientWidth/2 - ppic.offsetWidth/2)+ "px";

top.document.body.. на cliWidth и CliHeight соответственно, а то смысл их нам получать, если мы их потом не используем

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 14:46
Muerto
Не думаю. Просто не успевает картинка загрузиться, а скрипт уже спозиционировал. Честь по чести вычеслив размер 20 пикселей оффсета по вертикали и горизонтали у дива без картинки. А если у картинки есть размеры, то всё путём, место под неё будет зарезервировано и оффсеты дива будут с учетом размеров картинки.
Конечно есть ещё вариант аяксом запросить getimagesize для всех картинок, которые там скрипт формирует, но проще проставить всё-таки размеры вручную в названиях.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 14:50
WereWolf
а то что по ссылке что я дал, там рассказывается что существует 3 варианта получения размера окна.

window.innerHeight
document.body.clientHeight
document.documentElement.clientHeight

и рассказывается что они возращают в разных браузерах. Оттуда видно что то что ты использовал в самом начале
document.body.clientHeight
для Mozilla strict возращает размеры документа - коим является в данном случае фрэйм и имеет размеры 250 на 200 с чем-то или около того
а для Mozilla quirks - возращает размеры window - не могу найти точного определения для этого.

strict и quirks это ты задаёшь параметром <!DOCTYPE html PUBLIC...>, который у тебя присутствут на странице, в заголовке, но я не уверен в его работоспособности, так как у него нету ссылки на файл стандарта
подробнее про это можешь прочесть http://i2r.ru/static/479/out_23105.shtml
вообщем в том что я давал последнее - там идёт получение размеров используя document.documentElement.clientHeight. Поправь то что я написал в предыдущем топике и проверь.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 14:56
WereWolf
Muerto писал(а):Не думаю. Просто не успевает картинка загрузиться, а скрипт уже спозиционировал. Честь по чести вычеслив размер 20 пикселей оффсета по вертикали и горизонтали у дива без картинки. А если у картинки есть размеры, то всё путём, место под неё будет зарезервировано и оффсеты дива будут с учетом размеров картинки.
Конечно есть ещё вариант аяксом запросить getimagesize для всех картинок, которые там скрипт формирует, но проще проставить всё-таки размеры вручную в названиях.


типа так как фото уже в кеше то на второй раз то расчёт происходит правльно, а первый раз считает только отсупы. Может быть.

Владимир, выдай пожалуйста с какими размерами работает скрипт.
alert('browser width:'+cliWidth+' browser Height:'+cliHeight+' pic width:'+ppic.offsetWidth+' pic height:'+ppic.offsetWidth);
и поставть это последней строчкой в функции showPic().
интересуют результаты для ие и фф при первой и второй загрузках одной и той же фотографии.
предыдущие alert-ы не надо ставить, только этот.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 15:04
WereWolf
обшибся по поводу doctype. Есть такое без url

HTML 4.01 Transitional doctype без URL <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 17:30
Владимир
Ого, дискуссия развернулась... Меня не было почти весь день - развозил заказы с цветомузыками.
Вот только что приехал, и сразу выполняю вашу просьбу с алертами:
Изображение
Все нормально кроме первого запуска в ФФ, там размеры избражения 24х24 пикселя - по-моему это размер пустого квадратика, то есть когда изображения еще нет

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Чт окт 08, 2009 17:46
WereWolf
Muerto прав.
ФФ некорректно вычисляет размеры подгружаемой картинки, точнее он их вообще не вычисляет.
а 24px получается из нашего стиля. по 10 пикселей padding и по 2 border. Вот и наши 24px.

Так что пробуй вариант Muerto и при загрузке картинки split - ом вычленяй размеры картинки и подставляй их в пропертис img

Попробовал этот вариант.. Теперь вообще ничего не происходит

СообщениеДобавлено: Пт окт 09, 2009 10:18
Владимир
Код: Выделить всё
<!--
function showPic(pic){
//получаем размеры видимой части окна в зависимости от браузера.
var cliWidth = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientWidth:top.document.body.clientWidth;
var cliHeight = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientHeight:top.document.body.clientHeight;
// проверяем не показывается ли в данный момент какая-нибудь большая картинка и если да - уничтожаем ее
if(top.document.getElementById("picture")){top.document.body.removeChild(top.document.getElementById("picture"));}
// создаем див и вставляем в него нашу картинку
var ppic = top.document.createElement("div");
ppic.setAttribute("id","picture");
ppic.style.position = "absolute";
ppic.style.zIndex = "2";
ppic.style.color = "#000";
ppic.style.backgroundColor = "#e0dfe3";
ppic.style.border = "2px outset #fff";
ppic.style.padding = "10px 10px 10px 10px";
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + img.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";
top.document.body.appendChild(ppic);
ppic.onclick = function(){top.document.body.removeChild(this)};
ppic.style.top = parseInt(top.document.body.clientHeight/2 - ppic.offsetHeight/2) + top.document.body.scrollTop + "px";
ppic.style.left = parseInt(top.document.body.clientWidth/2 - ppic.offsetWidth/2)+ "px";
}

function findCenter(){
var ppic = top.document.getElementById("picture");
}
//-->

Может чета не так сделал? Хотя в точности скопировал код, предложенный Муэрто ...
Пробовал только на локале, в интернет закидывать этот вариант не стал, ибо совсем не работает.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 11:17
WereWolf
1. переименовал ли ты картинку, которую надо показать в вид algair_800x600.jpg?
2. Muerto описался,
...
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + img.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";

img замени на pic

Внес предложенный корректив - результат тот же...

СообщениеДобавлено: Пт окт 09, 2009 11:51
Владимир
Вот внес и этот корректив, теперь скрипт выглядит так:
Код: Выделить всё
<!--
function showPic(pic){
//получаем размеры видимой части окна в зависимости от браузера.
var cliWidth = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientWidth:top.document.body.clientWidth;
var cliHeight = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientHeight:top.document.body.clientHeight;
// проверяем не показывается ли в данный момент какая-нибудь большая картинка и если да - уничтожаем ее
if(top.document.getElementById("picture")){top.document.body.removeChild(top.document.getElementById("picture"));}
// создаем див и вставляем в него нашу картинку
var ppic = top.document.createElement("div");
ppic.setAttribute("id","picture");
ppic.style.position = "absolute";
ppic.style.zIndex = "2";
ppic.style.color = "#000";
ppic.style.backgroundColor = "#e0dfe3";
ppic.style.border = "2px outset #fff";
ppic.style.padding = "10px 10px 10px 10px";
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + img.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";
top.document.body.appendChild(ppic);
ppic.onclick = function(){top.document.body.removeChild(this)};
ppic.style.top = parseInt(top.document.body.clientHeight/2 - ppic.offsetHeight/2) + top.document.body.scrollTop + "px";
ppic.style.left = parseInt(top.document.body.clientWidth/2 - ppic.offsetWidth/2)+ "px";
}

function findCenter(){
var ppic = top.document.getElementById("picture");
}
//-->

Однако ничего не происходит. 1-ю картинку большого размера переименовал в algair_800x600.jpg
Честно говоря не очень понятно зачем ее надо было переименовывать. Уж если надо вычислить имя для большой картинки, то надо к имени файла добавить _big, то есть для каждой картинки типа name.jpg у меня существует увеличенный вариант name_big.jpg Все 150 картинок на сайте лежат в таком виде, не очень хочется их переделывать в имена подобные algair_800x600.jpg тем более, что они не обязательно 800х600, бывают больше или меньше...
Об этом у меня на сайте написано в начале этой страницы: http://colormusic.ru/museum.html Как посмотреть увеличенное фото?
А Муерто опИсался наверно потому, что много пива пьет ... -13-

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 12:38
WereWolf
1. Не вижу чтобы ты внёс корективы в скрипт. Как было с img ...img.split("_")[ так и осталось.
2. Зачем переименовывать - нам необходимо получить размеры картинки до момента загрузки её браузером, как вариант в момент получения ссылки на эту картинку. Для этого Muerto предложил в названии самой картинки использовать размеры, которые потом javascript функцией split вычленяются и явно задаются для объекта img , посредством свойств width и height
3. У меня всё работает и должно и у тебя работать. Вижу 2 варианта - или делать все картинки 800 на 600 и тогда не парится и тогда в скрипте
пишем следующее.
Код: Выделить всё
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="800" height="600" alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";


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

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 13:17
Владимир
WereWolf писал(а):1. Не вижу чтобы ты внёс корективы в скрипт. Как было с img ...img.split("_")[ так и осталось.
Честно говоря я не понял, что я должен был туда внести. Как мне было предложено заменить строку
Код: Выделить всё
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + img.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";
Вот я ее и вставил, но наверно я что-то не догоняю...
WereWolf писал(а):У меня всё работает и должно и у тебя работать.
Не работает... Может мы по разному скрипты правим, я по своему (неправильно) , а вы по своему (правильно). Дайте полный текст работающего скрипта, чтоб у нас не было разночтений.
WereWolf писал(а):или делать все картинки 800 на 600
Ну это конечно не выход, ибо этот скрипт у меня работает на всех страницах сайта, и везде картинки вызываются разного размера. Чем он мне и понравился, это то, что ему не надо было указывать размер картинки - он са ее определяет и располагает в центре экрана.
WereWolf писал(а):или третий вариант - написать на AJAX получение размеров картинки.
- это наверное был бы идеальный вариант, получился бы хороший кроссбраузерный скрипт, который может еще кому-нибудь пригодился бы.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 13:31
WereWolf
по первому. Здесь корректная строка.
Код: Выделить всё
ppic.innerHTML = "<img src='" + pic + "' title='скрыть' width="+ pic.split("_")[1].split(".")[0].split("X")[0] +" height=" + pic.split("_")[1].split(".")[0].split("x")[1] + " alt='' style='cursor:pointer' onload='setTimeout(\"findCenter()\",100)'>";

по второму - у меня работает потому что я исправил, а ты нет -03-
по третьему. В первом и втором нет смысла - так как надо делать дохрена исправлений вручную и даже сделав, надо будет потом всегда помнить об этом добавляя новые фото.
так что нужно думать о четвёртом варианте. Отсюда вопрос. PHP на твоём хостинге поддерживается?

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 14:13
Владимир
Исправил, теперь действительно заработало, но конечно это не выход, ибо надо 150 картинок исправить только на одной странице музея, а у меня страниц на сайте - 28 и почти везде этот скрипт работает.
PHP на моём хостинге по-моему поддерживается http://sweb.ru/services/hosting/
А может этот скрипт заменить на другой, может где-нить готовый есть?
Хотя, конечно если вы на AJAX его доделаете буду весьма признателен...
Да, уж если вы решитесь его переделывать, хорошо бы в этот скрипт добавить ма-а-а-ленькую ф-цию. Поскольку картинки большие, хорошо бы на время загрузки вывести маленькую анимашку типа этой: http://www.mike.sk/images/loading.gif

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 14:30
WereWolf
1. пишет что поддерживает php1

2. можно на такой заменить
http://www.maljutka.ru/
внизу страницы 7 одеял - щёлкни на любое, посмотри, устраивает ли такой

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 15:46
Muerto
Для анимашки подставь диву с загружаемой картинкой бэкграундом эту анимашку:
ppic.style.background = "#e0dfe3 url(http://www.mike.sk/images/loading.gif) center no-repeat";

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 21:12
Владимир
2 WereWolf:
Я картинку потом сам подберу, мне просто нужно было узнать как ее к скрипту прицепить, ибо сам пока в скриптах ни бум-бум...
2 Muerto:
Попробовал, как всегда не так все просто. В ИЕ вроде нормально, а в ФФ показывается маленький квадратик, в который она не влезает:
Изображение

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 21:40
WereWolf
2 WereWolf:
Я картинку потом сам подберу, мне просто нужно было узнать как ее к скрипту прицепить, ибо сам пока в скриптах ни бум-бум...


так я тебя и спрашиваю - такой как на том сайте что я дал тип показа фото тебя устраивает?
если да, то дам сам скрипт и напишу как его привязать

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пт окт 09, 2009 22:09
Владимир
Уважаемый тов. WereWolf!
Прежде чем загружать вас написанием нового скрипта, хотелось бы выяснить: а нельзя ли просто довести до ума уже имеющийся? Он меня вполне устраивает, в нем всего-то осталось сделать, чтоб в ФФ картинка сразу показывалась по центру. Это наверняка будет гораздо проще по трудозатратам вам. Да и мне тоже будет проще. Напомню, что у меня на сайте уже 28 страниц, и почти на каждой странице этот скрипт работает. Имплантация нового скрипта наверняка приведет к редактированию всех имеющихся страниц, в то время как доведение до ума имеющегося - лишь к редактированию одного файла - img-pop.js

Вот сегодня решил добавить мысли. Вся проблема данного скрипта осталась в правильном позиционировании в ФФ, чтобы сразу картинка центрировалась, и по всем вашим заключениям этого в нем якобы сделать нельзя. Однако это не совсем так. Тов. Муерто однажды брался уже за этот скрипт, и там эта проблема была решена. Правда работа над ним не была до конца доведена по причине его большой занятости, так что тот вариант скрипта немного недоделанный у меня сохранился. Он сразу правильно позиционирует картинку в ИЕ и в ФФ, в центре на время загрузки появляется анимашка, и даже обрамляющая рамка, по которой можно представить размер загружаемой фотографии. А доделать там осталось совсем малость - в ИЕ поля вокруг картинки неодинаковые, то есть где-то подправить вычисление паддингов. Итак смотрим:
http://colormusic.ru/contact-test.html#value - тестовая страница со скриптом. Подключены только первые три строки: Тюмень, Ноябрьск и Самара. Причем имя файла Ноябрьск указано специально неправильно, тогда можно сколь угодно долго наблюдать процесс загрузки.
http://colormusic.ru/use/js/img-pop-new.js - собственно сам скрипт.
Все что требует исправления - сделать одинаковые поля в ИЕ. В прошлый раз у тов. Муерто не нашлось времени его исправить, может сейчас удастся это сделать совместными усилиями?

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Сб окт 10, 2009 17:51
WereWolf
Скрипт, который работает на странице http://colormusic.ru/contact-test.html#value отличается от того что сейчас - тем, что там явно передаются размеры картинки, а мы как раз пытаемся от этого отойти.

Код: Выделить всё
<a class="menu2" onclick="showPic('contact/cyti/tumen.jpg', 500, 333)" href="#null">


Как в фф дождаться загрузки innerHTML и только потом запросить размеры и при этом чтобы тот ещё не отобразил картинку - я незнаю. Возможно это как-то можно сделать.

Моих знаний заставить работать данный скрипт хватает только добавлением AJAX-а, который будет обращаться к фотографии на сервере, запрашивать её размеры и возвращать в скрипт.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Сб окт 10, 2009 17:55
Владимир
Ну может попробовать этот AJAX? Наверняка переделка не должна быть очень сложной...

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:28
WereWolf
скрипт файл img-pop.js

Код: Выделить всё
function showPic(pic){
//получаем размеры видимой части окна в зависимости от браузера.
// проверяем не показывается ли в данный момент какая-нибудь большая картинка и если да - уничтожаем ее
if(top.document.getElementById("picture")){top.document.body.removeChild(top.document.getElementById("picture"));}
// создаем див и вставляем в него нашу картинку
var ppic = top.document.createElement("div");
ppic.setAttribute("id","picture");
ppic.style.position = "absolute";
ppic.style.zIndex = "2";
ppic.style.color = "#000";
ppic.style.backgroundColor = "#e0dfe3";
ppic.style.border = "2px outset #fff";
ppic.style.padding = "10px 10px 10px 10px";
top.document.body.appendChild(ppic);
get_picture_size(pic);
ppic.onclick = function(){top.document.body.removeChild(this)};
}

function findCenter(){
var ppic = top.document.getElementById("picture");
}

function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

function get_picture_size(pic) {
   var xmlhttp = getXmlHttp();
   var url = "get_picture_size.php";
   url=url+"?pic="+encodeURIComponent(pic);
   url=url+"&dummy="+ new Date().getTime();
   xmlhttp.open("GET", url, true);
   xmlhttp.onreadystatechange = function(answer)
     {
       if (xmlhttp.readyState == 4)
       {
          var cliWidth = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientWidth:top.document.body.clientWidth;
          var cliHeight = top.document.compatMode=='CSS1Compat' && !window.opera?top.document.documentElement.clientHeight:top.document.body.clientHeight;
           var ppic = top.document.getElementById("picture");
           var answer = xmlhttp.responseText.split("|");
           ppic.innerHTML = answer;
          ppic.style.top = parseInt(cliHeight/2 - answer[2]/2) + top.document.body.scrollTop + "px";
          ppic.style.left = parseInt(cliWidth/2 - answer[1]/2)+ "px";
       }

     }
  xmlhttp.send(null);
   }

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:30
WereWolf
1. создаём файл с именем get_picture_size.php и помещаем его в ту жу директорию где находится img-pop.js
2. вставляем туда следующий текст

Код: Выделить всё
<?php

  $pic=$_GET['pic'];
  list($width, $height) = getimagesize($pic);

  echo '<img src="'.$pic.'" title="скрыть" width="'.$width.'" height="'.$height.'" alt="" style="cursor:pointer" onload=\'setTimeout("findCenter()",100)\'>"|'.$width.'|'.$height;

?>

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:37
Muerto
getimagesize возвращает массив. [0][1] надо.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:38
Владимир
Пока хотелось прояснить вот какой вопрос, ибо я пока мог бы им заняться. Я и сам давно замечал, что картинки с моего музея не индексируются поисковиками. Это понятно, так как они не прописаны в хтмл-коде страницы а вызываются из скрипта. Это не есть хорошо, так как люди не находят нужную картинку искомой цветомузыки, да и на рейтинг сайта это никак в лучшую сторону не влияет. Я уже давно думал над решением этого вопроса. Наверно, проще всего сделать второй вариант музея, где расположить картинки в виде витрины. В этом случае они будут вызываться из хтмл-файла, так что будут проиндексированы, а у пользователя будет выбор варианта просмотра: либо лентой, как сейчас либо витриной. По-моему мысль правильная. Так вот по этому есть вопрос.
WereWolf писал(а): Так же советуют давать название фотографиям типа svetoregulirujushee-ustroystvo-alagir.jpg
Хотелось бы понять, каким образом индексируются имена фотографий. Допустим у меня фотка front.jpg и ей прописан alt="Светорегулирующее устройство Алагир". Понятно, что если в поисковике набрать "Устройство Алагир", то эта фотка будет присутствовать в результатах выдачи, несмотря на ее имя - front.jpg. Если же я ей дам имя svetoregulirujushee-ustroystvo-alagir.jpg что-нибудь изменится в лучшую сторону? Я так понимаю, чтобы ей попасть на выдачу, надо в поисковике набрать "ustroystvo alagir" или "svetoregulirujushee ustroystvo", а разве так кто-нибудь делает? Вобщем вопрос вот: если я делаю новую страницу, и прописываю названия устройств в alt, то есть ли смысл их еще и переименовать в svetoregulirujushee-ustroystvo-alagir.jpg? Картинок уже много - около 150 штук, и пустую работу делать не хочется, однако, если это действительно даст ощутимую пользу, я готов потратить нужное кол-во времени и довести это до ума.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:41
Muerto
Переименовывать не надо. Достаточно альта. Можешь для больших картинок сделать псевдопрелоадер плюс индексацию - в начале страницы сделай див со стилем display:none в который засунь все большие какртинки.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:48
WereWolf
1. Название картинки будут влиять на поиск по картинкам. Если кто в Google или Яндекс решит искать по картинкам. Там будет иметь значение альт, но имея ввиду что уу тебя ещё и назваание будет иметь соответствующее название, то у твоих фото будет выше ранк.
2. Поисковики отлично переводят русские слова написанные латыницей. Так что кто будет искать алагир по русски, поисковик отлично поймёт что alagir это тоже самое.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:50
WereWolf
Muerto писал(а):getimagesize возвращает массив. [0][1] надо.


Зачем [0][1]?

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:51
Muerto
Не так много картинок по такому критерию. Переименование не важно, хотя WereWolf написал правильно.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:55
Muerto
Я не смотрел функцию, может там list сделан, но, по идее, getimagesize возвращает массив, где первые два значения ширина и высота. Ну, либо [3] где для тега всё это прописано.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 14:58
Владимир
Привет Муерто!
Ты по-моему обо мне очень хорошего мнения. Фраза "Можешь для больших картинок сделать псевдопрелоадер плюс индексацию" мне мало о чем говорит - ты бы мне примерчик набросал - я бы с удовольствием его добавил.

Это мне напоминает анекдот:
Плывут друг навстречу другу два корабля. Капитан одного кричит другому:
- Как проплыть в Индию?
- Зюйд-зюйд-вест!
- Ты не выпендривайся, ты мне пальцем покажи ... -09-

Werewolf писал(а):Поисковики отлично переводят русские слова написанные латыницей. Так что кто будет искать алагир по русски, поисковик отлично поймёт что alagir это тоже самое.

Ага, спасибо, теперь понятно. На досуге я их переименую. Кстати, а ничего, что их имена будут такие длинные?

Да, спасибо за скрипт, сейчас выкрою немного времени и опробую его в деле. О результатах сообщу. Еще раз огромное СПАСИБО!

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 15:17
WereWolf
Предел длины есть точно, но мне кажется он не менее 254 символов...На твои названия точно хватит...

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 15:34
Muerto
Muerto писал(а):Переименовывать не надо. Достаточно альта. Можешь для больших картинок сделать псевдопрелоадер плюс индексацию - в начале страницы сделай див со стилем display:none в который засунь все большие какртинки.

Где-нить вверху страницы:
Код: Выделить всё
<div style="display:none;"><img src="/museum/alagir/top1_big.jpg" alt="Алагир такой-то"><img src="/museum/alagir/back_big.jpg" alt="Алагир такой-то"></div>

Только это увеличит время загрузки страницы.

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 15:38
WereWolf
Muerto писал(а):
Muerto писал(а):Переименовывать не надо. Достаточно альта. Можешь для больших картинок сделать псевдопрелоадер плюс индексацию - в начале страницы сделай див со стилем display:none в который засунь все большие какртинки.

Где-нить вверху страницы:
Код: Выделить всё
<div style="display:none;"><img src="/museum/alagir/top1_big.jpg" alt="Алагир такой-то"><img src="/museum/alagir/back_big.jpg" alt="Алагир такой-то"></div>

Только это увеличит время загрузки страницы.


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

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Пн окт 12, 2009 15:42
Muerto
Думаю, целевая аудитория сайта с достаточно жирным интернетом сидит, но, по уму, конечно великоваты страницы.

Не так все просто, как хотелось бы ...

СообщениеДобавлено: Вт окт 13, 2009 9:44
Владимир
Добрый день всем!
Вот с утра взялся за сайт. Очень хочется запустить этот злополучный скрипт, но что-то он не поддается.
Изменил содержание самого скрипта, любезно предоставленного WereWolf-ом: http://colormusic.ru/use/js/img-pop.js
Рядом с ним положил get_picture_size.php: http://colormusic.ru/use/js/get_picture_size.php
В предвкушении великого события нажимаю на картинки - фиг вам ... ничего не происходит ... -45-
Несколько раз все проверил - вроде нигде не ошибся. Заглянул унутрь файлов - ну там для меня китайская грамота (пока), может потихоньку разберусь во всем этом...

По поводу прелоада картинок:
WereWolf писал(а):лучше б я так не делал, там и так под 8 мегабайт грузится...а так прибаввь еще все картинки...тады просто труба...
Ну че я могу сказать - значит так делать не буду, ибо странички тяжеловаты, действительно.
Muerto писал(а):Думаю, целевая аудитория сайта с достаточно жирным интернетом сидит, но, по уму, конечно великоваты страницы.
И Муерто такого же мнения. Я согласен. Что на это можно возразить?
1. Не надо забывать, что это вообще мой первый сайт в жизни, который я начал делать постигая самые азы хтмл. Первоначально для меня было достаточно трудно вообще слепить хоть какое-то подобие страницы и разместить на ней текст с картинками. Ни о какой оптимизации я догда даже и не думал. Это можно посмотреть по самым первым вопросам в данном посте. Сейчас сам смотрю - во ламер был, такие дурацкие вопросы задавал... Но сейчас уже немного стал во всем этом разбираться. Правда как и в любой науке - чем больше ты узнаешь, тем больше понимаешь, что большая часть все-равно остается непознанной.
2. Оптимизацией сайта, конечно, можно и нужно заняться, но сначала хотелось бы наполнить его контентом, чтобы он уже хоть как-то выполнял свою ф-цию, а потом пытаться улучшить имеющееся.
3. Ну а вообще мне кажется, что эта проблема сама по себе уходит в прошлое, ибо скорость доступа у всех постоянно растет. Вот у меня например уже который год высокоскоростной безлимитный, и главное - бесплатный интернет. Дочка, например, качает фильмы DVD-дисками, которые посмотрев один раз безжалостно удаляет... Я думаю, что и другие тоже движутся в этом направлении. Есть еще, конечно, страдальцы, сидящие на модеме, но по-моему их уже единицы...

Делу время - потехе час!

СообщениеДобавлено: Вт окт 13, 2009 9:54
Владимир
Вот вчера случайно наткнулся на интересную страничку "Смешные доменные имена сайтов": http://www.slaed.net/news-view-209.html - от души посмеялся, чего и Вам желаю ...
Кому понравится - продолжение темы тут: http://www.molbiol.ru/cb/01_14.html

Re: Первый раз делаю сайт... Есть проблемы, буду рад помощи...

СообщениеДобавлено: Вт окт 13, 2009 12:57
WereWolf
У тебя скрипт не находит php файл.

замени в файле img-pop.js строчку
var url = "get_picture_size.php";
на
var url = "use/js/get_picture_size.php";