Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Нужна помощь с доработкой JS, исправить 1 баг, можно даже за $ (https://javascript.ru/forum/dom-window/21317-nuzhna-pomoshh-s-dorabotkojj-js-ispravit-1-bag-mozhno-dazhe-za-%24.html)

Kanzaki 05.09.2011 10:57

Нужна помощь с доработкой JS, исправить 1 баг, можно даже за $
 
Доброго времени суток, уважаемые господа (и дамы, если таковые имеются)

Есть один java-скрипт от расширения для Firefox, который работает, но есть в нем один баг.
В общем скрипт при наведении на ссылку с изображением показывает во всплывающем окне это изображение, или его уменьшенную копию, это как будет настроено.
Баг заключается в том, что если изображение по высоте больше, чем высота окна (при условии настроек - показ изображения возле курсора мыши) и если показывается выше курсора (так, как ниже не влазит), то оно почему-то обрезается по высоте до положения курсора, а ширина остается правильной.
Вот скрин:


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

Прошу подойти к дело серьезно.
Сам код можете посмотреть тут или скачать тут, чтобы сильно не загромождать страницу форума

Gvozd 05.09.2011 12:44

"небольшая плата" - понятия относительное.
более конкретные цифры, пожалуйста, а то вдруг вы подразумеваете 5$

Kanzaki 05.09.2011 13:14

Больше. Ну, об этом можно договориться отдельно.
На самом деле работы не много. Я ведь не прошу написать новый скрипт, а лишь исправить один баг.
Слишком много предложить не могу, но всё же надеюсь на вашу помощь.
Если есть интерес, пишите в icq: 260288256

Gvozd 05.09.2011 13:32

Цитата:

Сообщение от Kanzaki
Больше. Ну, об этом можно договориться отдельно.

кажется я попросил конкретику.
То, что вы разместили предложение о работе не в соответсвующем разделе форума, это не значит, что вы можете не выполнять правила для него.
http://javascript.ru/forum/job/3330-pravila.html
Так, что пожалуйста укажите способ и размер оплаты.
Цитата:

Сообщение от Kanzaki
На самом деле работы не много.

С чего вы так решили, если не можете самостоятельно сделать эту работу?
Я, например пока не могу навскидку оценить объем работы, так как вы не указали живого примера(не хватает HTML-а, картинок и стилей с которым предполагается работать плагину)
Бесплатно же вычитывать же весь код для оценки работы, с применением прогрессивных телепатических технологий, сами понимаете, мне не хочется.
Цитата:

Сообщение от Kanzaki
Я ведь не прошу написать новый скрипт, а лишь исправить один баг.

Вам стоит знать, что исправить баг не в своем коде, стоит всегда дороже, чем исправить баг в своем коде.
А иногда, даже дороже чем изначальный скрипт

Kanzaki 05.09.2011 13:56

Конкретно готов заплатить в качестве благодарности 10$. Именно в качестве благодарности, поэтому и создал в этом разделе.
Про способ оплаты, мне удобней через киви кошелек. Через него уже могу отправить куда вам нужно, вроде...
Я почти со всем кодом разобрался, однако исправить баг самому не получается.
Получить все необходимые стили и картинки можете получить связавшись со мной в icq (260288256) или через почту (heavenanvil@gmail.com)

Андрей Параничев 05.09.2011 16:43

У вас в коде есть такие места:
//this.popupWindow.style.width =  (imgWidth +20)+'px';
//this.popupWindow.style.height = (imgHeight+20)+'px';
this.popupWindow.style.width = 'auto';
this.popupWindow.style.height = 'auto';

Конечно вслепую разбираться практически нереально, но вы не пробовали раскомментировать первые строчки и закомментировать две последние? Мне кажется, что происходит такое из-за того, что auto ужимает ваш элемент от верха экрана до текущего места нахождения курсора.

Kanzaki 05.09.2011 16:52

Андрей Параничев, это пробовал в первую очередь. Ничего не изменяется.

DjDiablo 05.09.2011 19:20

Не совсем удачная мысль помоему, делать full preview равным реальному размеру изображения.
Лучше всё таки ограничить preview каким нибудь 400x600. А ещё лучше прописать только высоту или ширину, чтобы браузер вычислил недостающий параметр сам и не деформировал изображение. Благодаря этому пользователь сможет увидеть большую картинку целиком, а не только её половину.

можно сделать даже более разумным плагин.
если left картинки+ширина картинки > ширины окна тогда left картинки= ширина окна- ширина картинки.
То есть не даём картинки вылазить за пределы экран.

Kanzaki 05.09.2011 20:24

DjDiablo, то есть Вы имеете ввиду: Если картинка не влазит в экран, уменьшаем её так, чтобы влезла, а если влазит, то не изменяем, а просто показываем. Так?
Хм. Возможно данный метод решит проблему. Хотя в настройках плагина есть галочка типа: Максимальная высота изображения. Если меньше этого значения, то она уменьшается (но вы наверно заметили это по коду). Так вот даже если я ставлю значение равное высоте разрешения моего экрана, проблема все равно остается, обрезается на уровне курсора. Так, что может этот способ и не решит проблему.
Найдется кто смелый попробовать реализовать то, что DjDiablo, задумал? У меня пока опыта маловато, очень много времени потрачу на это, но век живи, век учись :)

Kanzaki 06.09.2011 00:03

Вот. что мне ответил автор этого скрипта:
Цитата:

We popup preview window by this way:

this.popupWindow.openPopupAtScreen(x,y);

Popup a window will make sure preview windows always overlay on web page.

There are some limit when popup window :
window must small than your screen. If your image large than your screen, image will be cropped.
Another problem is : when [popup location y] < [image.height] will get a wrong window size.

If want to fix these problems:
(1) When image large than your screen, we MUST scale image.
(2) When [image.heigh] > [mouse.pos.y] we need set [popup location y] to image.heigh.
Это должно помочь. Я знаю, что тут написано. А в последних строках и конкретный способ решения проблемы. Мне нужна помощь исправить.

DjDiablo 06.09.2011 13:33

Гы, он предложил практически то же самое)))

можно посмотреть на код страницы которая вызывает плагин. Есть мнение что можно решить это не меняя код плагина.

что касается плагина
тут интересна функция prePicResize и previewShown
особенно интересно почему в них такой схожий код
Если первая отвечает за маштабирование, то вторая за
маштабирование и установку img в popupWindow :lol:

ещё очень забавляет
this.popupWidth = (imgWidth / scale) +20;
тобиш вычисляется ширина окна, но нигде и никак не применяется ))))
ширина окна по сути устанавливается строкой this.popupWindow.style.height = 'auto'.
Что наталкивает на мысль о том что popupWindow меньше чем изображение
возможно this.popupWindow.style.height=this.popupHeigh+"px" ; было бы более удачным решением.


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

Kanzaki 06.09.2011 14:13

http://narod.ru/disk/24212975001/add....7-fx.xpi.html
Вот сам плагин, открывается с помощью любого архиватора. Там уже найдете все скрипты и файлы настроек.
"Код страницы, которая вызывает плагин" в файле "imagepreviewOverlay.xul"

Собственно исправив код, можете сразу и проверить его у себя :)

Kanzaki 08.09.2011 21:01

Смелых пока нет :(

Gvozd 08.09.2011 23:02

Цитата:

Сообщение от Kanzaki
Смелых пока нет

наверно потому что:
Цитата:

Сообщение от Kanzaki
Конкретно готов заплатить в качестве благодарности 10$.


Kanzaki 09.09.2011 06:22

Может и так, а может и нет. Не все же тут ради денег, верно Gvozd?

melky 09.09.2011 09:51

страница с примером есть?

Gvozd 09.09.2011 14:10

Цитата:

Сообщение от Kanzaki
Не все же тут ради денег, верно Gvozd?

верно.
многим здесь, как и мне приятно просто помогать людям.
но, в вашем случае это уже не помощь(ведь автор скрипта уже помог вам с решением), а уже выполнение работы для вас.
тут уже вступают в силу законы денег, раз вы хотите чтобы кто-то сделал для вас работу.

DjDiablo 09.09.2011 17:17

Наконец дошли руки посмотреть. И тут я с удивлением обнаружил что плагин несовместим с последними версиями firefox. пробывал 6.1 и 6.2.
Кажется он устарел ещё до выпуска ))

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

Kanzaki 14.09.2011 21:21

Да, оригинальная версия расширения устарела давно, но её просто адаптировать под любую версию:
Чтобы адаптировать плагин, нужно сохранить его на жестом диске, в формате xpi, открыть архиватором и в файле install.rdf в строке <em:maxVersion>x</em:maxVersion> заменить x на версию браузера, например 6.2 или 6.*
Хотя вроде та версия, которую я выкладывал уже была адаптирована, но можете попробовать вручную.


Часовой пояс GMT +3, время: 19:20.