Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Вопросы по скрипту Lightbox (http://forum.oszone.net/showthread.php?t=144741)

maasja 09-07-2009 20:11 1163258

Здравствуйте. Скажите пожалуйста, как сделать из скрипта - ссылку. Нужно для того, чтоб кода пользователь навёл указатель мышки на ссылку(или просто хотёл узнать ссылку ) то не видел ссылку на что - небудь, а видел функцию джава скрипта в который пердается какой-то параметр. Обьясняю: есть скрипт лайтбокс, все его прекрасно знают, для фоток. Там ссылка едет такого плана, <a href="1.jpg" rel="lightbox[img]"></a>, href="1.jpg"это ссылка на изображение, а rel="lightbox[img]" это открыть изображение лайтбоксом. Поскольку я хочу скрыть ссылки, то хочу сделать так <a href="javascript:href(25)" rel="lightbox[img]"></a>. Мне нужна такая функция, чтоб принажимании на ссылку из скрипта и открывалось изображение. Возможно ли это? если плохо сформулировал вопрос- скажите, переправлю. Спасибо...

Flcn 09-07-2009 20:26 1163275

maasja
ну смотри в нужном обработчике пешешь что то вроде: onmouseover="MyHandleFunction(); return false;" если я так всё понял.. в функции указываешь то что должно происходить, а с помошью return false; отменяешь поведение по умолчанию

а если надо куданибуть переходить то просто window.location.href="адрес"

по поводу формулировки, действительно понятно с трудом.. если вообще понятно)

proxy 10-07-2009 11:34 1163682

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

Код:

<a href="javascript:void(0)" rel="lightbox[img]"></a>
или так, имхо, это хуже, так как елси несработает js, то страница будет прокручена к началу
Код:

<a href="#" rel="lightbox[img]"></a>

maasja 10-07-2009 14:24 1163867

Попытаюсь обьяснить получше. Вот родной сайт лайтбокса Lightbox , в нём можно увидеть пример скрипта. В href="" должен прописыватся путь к фотографии. Но с целью скрыть от копирования фотки, хочу скрыть ссылки, а весь исходный текст засунуть в какой нибудь шифровальщик. Я пробовал, пробовал, у меня не получилось вместо ссылки на фотографию написать ссылку на скрипт(ну и сам скрипт). Я хочу чтоб например это
Код:

<a href="javascript:href(x)" rel="lightbox[img]"></a>
заменяло
Код:

<a href="1.jpg" rel="lightbox[img]"></a>
. Но так чтоб работал лайтбокс. Если ставлю window.location.href="адрес", то лайтбокс не работает, а вся страница просто переходит по указаному адесу.

proxy 10-07-2009 17:52 1164050

вот на это замени в файле lightbox.js:

Код:

start: function(imageLink) {   

        $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });

        // stretch overlay to fill page and fade in
        var arrayPageSize = this.getPageSize();
        $('overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });

        new Effect.Appear(this.overlay, { duration: this.overlayDuration, from: 0.0, to: LightboxOptions.overlayOpacity });

        this.imageArray = [];
        var link, imageNum = 0;     

        if ((imageLink.rel == 'lightbox')){
            // if image is NOT part of a set, add single image to imageArray
                        link = imageLink.getAttribute('link');
                        if (link == null) link = imageLink.href;
            this.imageArray.push([link, imageLink.title]);                 
        } else {
            // if image is part of a set..
            this.imageArray =
                $$(imageLink.tagName + '[href][rel="' + imageLink.rel + '"]').
                collect(function(anchor){
                                        link = anchor.getAttribute('link');
                                        if (link == null) link = anchor.href;
                                        return [link, anchor.title]; }).
                uniq();
            link = imageLink.getAttribute('link');
                        if (link == null) link = imageLink.href;
            while (this.imageArray[imageNum][0] != link) { imageNum++; }
        }

ссылки оформлять так:
Код:

<a href="javascript:void(0)" link="images/image-1.jpg" rel="lightbox"><img src="images/thumb-1.jpg" width="100" height="40" alt="" /></a>
либо как и прежде:
Код:

<a href="images/image-1.jpg" rel="lightbox"><img src="images/thumb-1.jpg" width="100" height="40" alt="" /></a>
первое, что придумалось. коненоч вариант без правки lightbox.js будет лучше.....

maasja 10-07-2009 19:00 1164112

Да-да. это именно то что я хочу, но оно не работает((((( lightbox перестал работать после такого...

proxy 10-07-2009 20:54 1164223

Вложений: 1
Цитата:

Цитата maasja
lightbox перестал работать после такого... »

вполне возможно. я пробовал на последней версии lightbox.
а заменил верно? ни чего лишнего не стер?
сейчас перепопробую..

Нашел ошибку, обновил код - пост выше. Либо во вложении.


Цитата:

Цитата maasja
в буфер обмена копировался адрес мыла. Возможно ли это? »

очень геморно, куча ограничений - что бы js код ненароком вирус незанес.
но вариант есть, попробовать стоит...

за то с этой задачей легче flash справляется

maasja 10-07-2009 22:42 1164325

Еще про лайтбокс. 1. lightbox работает только после полной загрузки страницы, а можно ли сделать так чтоб вовремя загрузки он тоже работал? 2. lightbox загружает картинку на столько пикселей, сколько имеет сама картинка, а можно ли как то самому выставлять размер изображения? например rel="lightbox(700,500)[img]"?

proxy 11-07-2009 00:10 1164367

maasja, с ссылками вышло?

1. lightbox начинает работать после полной загрузки dom дерева. раньше ни как, так как он пробегается по всем ссылкам / картинкам и разбирается, что же с ними делать. для разнообразия, в файле lightbox.js, внизу есть строчка:
Код:

document.observe('dom:loaded', function () { new Lightbox(); });
можешь её заменить на:
Код:

document.observe('dom:loaded', function () { alert('DOM загрузился, сейчас начнется подготовка работы Lightbox'); new Lightbox(); alert('Lightbox готов к работе'); });
и увидешь как быстро загрузится dom.

2. думаю да, только это не 5-минутное дело. тут повозиться немного необходимо.

maasja 13-07-2009 22:48 1166821

1.Тоесть нельзя Lightbox настроить так чтобы он работал до полной загрузки? а что если скрипты Lightbox поставить после фоток, то ему не придется пробежатся по всем ссылкам / картинкам после загрузки себя, а только до? или засунуть все ссылки-картинки в сам срипт Lightbox?
2. Проблема такая. Вот мой сайт, и на странице wedding и portfolio хотелось бы чтоб картинки (большие, те что грузятся в Lightbox) весили мало. Но поскольку Lightbox загружает картинку на столько пикселей, сколько имеет сама картинка, то уменьшения фотки (по размеру в кб, а не пикселей) теряет много качества. Но если сама фотка большая (в пикселях) то уменьшения ее качества незаметны, бо там много пикселей.
Попробую объяснить лучше, а то я как что-то не напишу))
Пример 1: Нужно отобразить фотку например размером 100х100 пикселей. Я создаю фотку размером 100х100, после уменьшаю ее качество для малого веса, и загружаю ее на сайт. В результате фотка весит мало, но ее качество плохое.
Пример 2: Нужно отобразить фотку например размером 100х100 пикселей. Я создаю фотку размером 500х500, дальше уменьшаю ее качество для малого веса. В результате фотка весит меньше чем в предыдущем примере(качества я сьел побольше), но если ее просмотреть размером 100х100 пикселей, то качество хорошее(намного лучше чем в предыдущем примере). Но пример 2 не реально осуществить, поскольку Lightboxу нельзя задавать размер изображения. Так что я был бы очень благодарен, если б вы помогли мне с этим(заодно и много людям тоже).
Кстате, proxy, я там к тебе в аську постучусь, может там попишемся про скрипт и выложем потом его здесь? спсибо.)))

proxy 13-07-2009 23:51 1166878

maasja, действительно, постучись лучше в аську - будет быстре.

По поводу правки Lightbox - все можно сделать, даже что то и до загрзки и размеры и т.д. - практически все, что угодно.
НО - для таких целей придется полностью переделать Lightbox, так как его технология работает сааавсем по другому, кроме
размеров, думаю там это можно вписать. Имхо, сделать могу, но нет свободного времени. Поэтому, большой правкой
сейчас заниматься не буду, может со времинем, как нить.....

maasja 17-07-2009 16:30 1170664

proxy, ты получаеш мои сообщения в аське? а то по-моему твой спам бот меня забанил когда я ему ответил не "37" а "37)")) Разбань меня как-то плиз))

MikeEkb 04-02-2011 06:32 1604034

У меня тоже есть вопрос по LightBox.

У меня div, с описанием к картинке, а в нем тэг <a /> с ссылкой на картинку, и мини изображение.. лайтбокс работает нормально при нажатии на картинку, она открывается, но мне надо чтобы при нажатии на сам див открывался лайтбокс.. как это сделать. подскажите пожалуйста?

MikeEkb 04-02-2011 08:24 1604059

Спасибо, разобрался, кому интересно выкладываю код

Код:

$(document).ready(function(){
        $('.mishka a').lightBox();                                         
        $(".mishka_click").click(function(){
                $(this).find("a").trigger('click');
        });

});

я нажимаю на див mishka_click, а trigger эмулирует нажатие на картинку которая в теге <a />

rsod 04-02-2011 12:39 1604230

Цитата:

Цитата maasja
Но с целью скрыть от копирования фотки, хочу скрыть ссылки, а весь исходный текст засунуть в какой нибудь шифровальщик. Я пробовал, пробовал, у меня не получилось вместо ссылки на фотографию написать ссылку на скрипт(ну и сам скрипт) »

Детский сад.


Время: 23:55.

Время: 23:55.
© OSzone.net 2001-