Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скрол и вичисление позиции 
:(
    Опции темы
ForveAvar
Дата 29.7.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 6.8.2009

Репутация: нет
Всего: 1



Вопщем дело такое

на страничке(aspx) есть юзер контрол в котором грузитса картинка А(маленькая) и картинка В. При наведение указателя на картинку В осуществляетса подгрузка картинки А но увеличеной, так вот....суть проблеми в том ч то если настраничне нет скрола то все прейсходит нормально, но как только есть скрол координата считаетса не правильно и увеличеная картинка грузитса кудато вниз

вот код которий считает координати
Код

// Get the x position of the expanded image.
function findPosX(obj)
{
    var curleft = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

// Get the y position of the expanded image.
function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function showExpandedImage(imagePanel, largeImage, smallImage)
{
    var width = largeImage.width;
    var oldWidth = smallImage.width;
    var x = findPosX(smallImage);
    var left = x;// - (width - oldWidth);
    var y = findPosY(smallImage);

    imagePanel.style.left = (left > 0 ? left : 0) + 'px';
    imagePanel.style.top = (y > 100 ? y - 100 : 0) + 'px';

    imagePanel.style.visibility = 'visible';
}

PM MAIL   Вверх
Amphiluke
Дата 29.7.2010, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Не пробовали при вычислении координат поиграться со слагаемыми вида
Код

document.documentElement.scrollTop
document.documentElement.scrollLeft

?
PM   Вверх
ForveAvar
Дата 29.7.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 6.8.2009

Репутация: нет
Всего: 1



ща попробую...просто я вооооопще неочень в javascript

Добавлено через 9 минут и 6 секунд
для лудшего понимания проблеми я кинул скриншот.....красним отмечений проблемний скрол
user posted image
PM MAIL   Вверх
Amphiluke
Дата 29.7.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Это у вас iframe? Тогда нужен documentElement фрейма, а не родительского документа.
А если это div с overflow:auto, то тогда нужно брать scrollTop самого div'а.
PM   Вверх
ForveAvar
Дата 29.7.2010, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 6.8.2009

Репутация: нет
Всего: 1



на клиенте ето table....тут можно посмотреть код странички: Клик

картитки грузятса _resourceList__mainPanel

Это сообщение отредактировал(а) ForveAvar - 29.7.2010, 14:08
PM MAIL   Вверх
Amphiluke
Дата 29.7.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



В коде, конечно, черт ногу сломит. smile

Цитата(ForveAvar @  29.7.2010,  18:02 Найти цитируемый пост)
картитки грузятса _resourceList__mainPanel

Это div, у которого установлен стиль overflow: auto?
Попробуйте в функции findPosY прикрутить scrollTop этого div'а.
Ну что-то типа такого (приблизительно)
Код

function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop + document.getElementById("_resourceList__mainPanel").scrollTop; // или минус наоборот
}

PM   Вверх
ForveAvar
Дата 29.7.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 6.8.2009

Репутация: нет
Всего: 1



 smile  smile 

СПОСИБ ПРИОГРОМНОЕ...помогло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0994 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.