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

Старый mweb

Модератор: [mweb team]

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 , или как-то они все-таки работают?
Конечно, очень хочется добиться нормальной работы, ибо так конечно гораздо приятнее появляется - сразу в нужном месте. Однако, если этот глюк победить не удастся - придется вернуться к исходному варианту - пусть выпрыгивает из угла, не очень красиво, но в обеих браузерах однотипно работает...
Вобще-то какой-то странный глюк. Первый раз координаты картинки в ФФ определяются неправильно, однако, если ее закрыть, то начиная со второго раза все отлично. Если сменить картинку на другую - то та же песня ...
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение Muerto Чт окт 08, 2009 12:33

Проще всего размеры картинки добавить в название большой картинки и позиционировать от них. Допустим:
название большой картинки 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";
}

Ну и онлоад можно выкинуть.
Конечно по уму это регуляркой делать, а не сплитом, но нет времени. В общем, я идею подал...
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение WereWolf Чт окт 08, 2009 14:31

Насколько я понимаю - фф размеры картинки как раз определяет правильно, поэому нет смысла их пеередавать в функцию.
Вроде бы проблема с получением размера видимой области браузера...так как боди получается не вся страница а фрэйм, который имеет размеры 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 соответственно, а то смысл их нам получать, если мы их потом не используем
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Чт окт 08, 2009 14:46

Не думаю. Просто не успевает картинка загрузиться, а скрипт уже спозиционировал. Честь по чести вычеслив размер 20 пикселей оффсета по вертикали и горизонтали у дива без картинки. А если у картинки есть размеры, то всё путём, место под неё будет зарезервировано и оффсеты дива будут с учетом размеров картинки.
Конечно есть ещё вариант аяксом запросить getimagesize для всех картинок, которые там скрипт формирует, но проще проставить всё-таки размеры вручную в названиях.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение WereWolf Чт окт 08, 2009 14:50

а то что по ссылке что я дал, там рассказывается что существует 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. Поправь то что я написал в предыдущем топике и проверь.
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение WereWolf Чт окт 08, 2009 14:56

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


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

Владимир, выдай пожалуйста с какими размерами работает скрипт.
alert('browser width:'+cliWidth+' browser Height:'+cliHeight+' pic width:'+ppic.offsetWidth+' pic height:'+ppic.offsetWidth);
и поставть это последней строчкой в функции showPic().
интересуют результаты для ие и фф при первой и второй загрузках одной и той же фотографии.
предыдущие alert-ы не надо ставить, только этот.
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение WereWolf Чт окт 08, 2009 15:04

обшибся по поводу doctype. Есть такое без url

HTML 4.01 Transitional doctype без URL <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Владимир Чт окт 08, 2009 17:30

Ого, дискуссия развернулась... Меня не было почти весь день - развозил заказы с цветомузыками.
Вот только что приехал, и сразу выполняю вашу просьбу с алертами:
Изображение
Все нормально кроме первого запуска в ФФ, там размеры избражения 24х24 пикселя - по-моему это размер пустого квадратика, то есть когда изображения еще нет
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Чт окт 08, 2009 17:46

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

Так что пробуй вариант Muerto и при загрузке картинки split - ом вычленяй размеры картинки и подставляй их в пропертис img
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Владимир Пт окт 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");
}
//-->

Может чета не так сделал? Хотя в точности скопировал код, предложенный Муэрто ...
Пробовал только на локале, в интернет закидывать этот вариант не стал, ибо совсем не работает.
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пт окт 09, 2009 11:17

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
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Владимир Пт окт 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-
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пт окт 09, 2009 12:38

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 получение размеров картинки.
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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 получение размеров картинки.
- это наверное был бы идеальный вариант, получился бы хороший кроссбраузерный скрипт, который может еще кому-нибудь пригодился бы.
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пт окт 09, 2009 13:31

по первому. Здесь корректная строка.
Код: Выделить всё
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 на твоём хостинге поддерживается?
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Владимир Пт окт 09, 2009 14:13

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

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

Сообщение WereWolf Пт окт 09, 2009 14:30

1. пишет что поддерживает php1

2. можно на такой заменить
http://www.maljutka.ru/
внизу страницы 7 одеял - щёлкни на любое, посмотри, устраивает ли такой
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Пт окт 09, 2009 15:46

Для анимашки подставь диву с загружаемой картинкой бэкграундом эту анимашку:
ppic.style.background = "#e0dfe3 url(http://www.mike.sk/images/loading.gif) center no-repeat";
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение Владимир Пт окт 09, 2009 21:12

2 WereWolf:
Я картинку потом сам подберу, мне просто нужно было узнать как ее к скрипту прицепить, ибо сам пока в скриптах ни бум-бум...
2 Muerto:
Попробовал, как всегда не так все просто. В ИЕ вроде нормально, а в ФФ показывается маленький квадратик, в который она не влезает:
Изображение
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пт окт 09, 2009 21:40

2 WereWolf:
Я картинку потом сам подберу, мне просто нужно было узнать как ее к скрипту прицепить, ибо сам пока в скриптах ни бум-бум...


так я тебя и спрашиваю - такой как на том сайте что я дал тип показа фото тебя устраивает?
если да, то дам сам скрипт и напишу как его привязать
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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 - собственно сам скрипт.
Все что требует исправления - сделать одинаковые поля в ИЕ. В прошлый раз у тов. Муерто не нашлось времени его исправить, может сейчас удастся это сделать совместными усилиями?
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Сб окт 10, 2009 17:51

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

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


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

Моих знаний заставить работать данный скрипт хватает только добавлением AJAX-а, который будет обращаться к фотографии на сервере, запрашивать её размеры и возвращать в скрипт.
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Владимир Сб окт 10, 2009 17:55

Ну может попробовать этот AJAX? Наверняка переделка не должна быть очень сложной...
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пн окт 12, 2009 14:28

скрипт файл 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);
   }
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение WereWolf Пн окт 12, 2009 14:30

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;

?>
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Пн окт 12, 2009 14:37

getimagesize возвращает массив. [0][1] надо.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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 штук, и пустую работу делать не хочется, однако, если это действительно даст ощутимую пользу, я готов потратить нужное кол-во времени и довести это до ума.
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение Muerto Пн окт 12, 2009 14:41

Переименовывать не надо. Достаточно альта. Можешь для больших картинок сделать псевдопрелоадер плюс индексацию - в начале страницы сделай див со стилем display:none в который засунь все большие какртинки.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение WereWolf Пн окт 12, 2009 14:48

1. Название картинки будут влиять на поиск по картинкам. Если кто в Google или Яндекс решит искать по картинкам. Там будет иметь значение альт, но имея ввиду что уу тебя ещё и назваание будет иметь соответствующее название, то у твоих фото будет выше ранк.
2. Поисковики отлично переводят русские слова написанные латыницей. Так что кто будет искать алагир по русски, поисковик отлично поймёт что alagir это тоже самое.
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение WereWolf Пн окт 12, 2009 14:50

Muerto писал(а):getimagesize возвращает массив. [0][1] надо.


Зачем [0][1]?
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Пн окт 12, 2009 14:51

Не так много картинок по такому критерию. Переименование не важно, хотя WereWolf написал правильно.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение Muerto Пн окт 12, 2009 14:55

Я не смотрел функцию, может там list сделан, но, по идее, getimagesize возвращает массив, где первые два значения ширина и высота. Ну, либо [3] где для тега всё это прописано.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение Владимир Пн окт 12, 2009 14:58

Привет Муерто!
Ты по-моему обо мне очень хорошего мнения. Фраза "Можешь для больших картинок сделать псевдопрелоадер плюс индексацию" мне мало о чем говорит - ты бы мне примерчик набросал - я бы с удовольствием его добавил.

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

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

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

Да, спасибо за скрипт, сейчас выкрою немного времени и опробую его в деле. О результатах сообщу. Еще раз огромное СПАСИБО!
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Пн окт 12, 2009 15:17

Предел длины есть точно, но мне кажется он не менее 254 символов...На твои названия точно хватит...
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Пн окт 12, 2009 15:34

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

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

Только это увеличит время загрузки страницы.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение WereWolf Пн окт 12, 2009 15:38

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 мегабайт грузится...а так прибаввь еще все картинки...тады просто труба...
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

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

Сообщение Muerto Пн окт 12, 2009 15:42

Думаю, целевая аудитория сайта с достаточно жирным интернетом сидит, но, по уму, конечно великоваты страницы.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

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

Сообщение Владимир Вт окт 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-дисками, которые посмотрев один раз безжалостно удаляет... Я думаю, что и другие тоже движутся в этом направлении. Есть еще, конечно, страдальцы, сидящие на модеме, но по-моему их уже единицы...
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение Владимир Вт окт 13, 2009 9:54

Вот вчера случайно наткнулся на интересную страничку "Смешные доменные имена сайтов": http://www.slaed.net/news-view-209.html - от души посмеялся, чего и Вам желаю ...
Кому понравится - продолжение темы тут: http://www.molbiol.ru/cb/01_14.html
Аватара пользователя
Владимир
Редко заходит
 
Сообщения: 290
Зарегистрирован: Чт фев 22, 2007 13:10
Откуда: Москва

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

Сообщение WereWolf Вт окт 13, 2009 12:57

У тебя скрипт не находит php файл.

замени в файле img-pop.js строчку
var url = "get_picture_size.php";
на
var url = "use/js/get_picture_size.php";
Легче кивнуть головой в знак согласия, чем объяснять, почему ты не согласен.
Аватара пользователя
WereWolf
Редко заходит
 
Сообщения: 134
Зарегистрирован: Вт июл 18, 2006 23:37
Откуда: Рига

Пред.След.

Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

cron