czachor
28.02.2009, 17:10:55
Witam,
jest jakiś patent na zablokowanie wyświetlania zawartości atrybutu "title" po najechaniu na obrazek nie usuwając jednocześnie tej zawartości? Mam narzucone użycie lightboxa, wysyłam do niego sporo htmla no i cały ten bajzel wyświetla się po najechaniu na zdjęcie.
Z mojego rozeznania wynika, że nie ma na to sposobu, ale może ktoś coś wie...
bełdzio
28.02.2009, 19:36:56
najprostszym sposobem byłoby usuwanie wartosci title w chwili najechania kursorem na obrazek i przywracanie wartosci w chwili opuszczenia obrazka
czachor
1.03.2009, 22:57:00
Hmhmhm.... Rozwiązanie chyba nie jest złe, tylko zastanawiam się, czy nie zrobi się z tego sterta kodu, bo jak obrazków jest 50, do każdego trochę tego kodu będzie w title... Tak czy inaczej, dzięki za pomysł, rozważę. Myślę jeszcze, żeby zrobić ajaxem ładowanie kodu po otwarciu obrazka w lightboxie...
Cytat
czy nie zrobi się z tego sterta kodu, bo jak obrazków jest 50, do każdego trochę tego kodu będzie w title...
Niekoniecznie:
Kod
var imgs = document.getElementById('rodzic').getElementsByTagName('img');
for(var i=0;i<imgs.length; i++){
imgs[i].setAttribute('oTitle', imgs[i].title);
imgs[i].onmouseover = function(){
this.title = '';
};
imgs[i].onmouseout = function(){
this.title = this.oTitle;
};
}
Pisane łokciem.
czachor
1.03.2009, 23:33:13
Zwracam honor. Co do kodu, jest jednak drobna zmiana: title="" jest dla tagu <a>, no ale to sobie podmieniłem. Niestety coś nie działa... Ogólnie struktura jest taka:
<a title="(........)"><img /></a> <a title="(........)"><img /></a> .....
Nic się nie dzieje, title jest jak było, webdeveloper wyrzuca: "Błąd: document.getElementById("a") is null". Ogólnie dziwna sprawa i utknąłem na tym dlaczego jest 'null', które jest zwracane jeśli element nie istnieje :/
A w jaki sposób wywołujesz funkcję czyszczenia
title?

Mam nadzieję, że w
onload albo
DOMContentLoaded, a nie bezpośrednio przed linkami, bo wtedy będzie na pewno puste.
czachor
2.03.2009, 00:32:24
Przez onload, zaraz sprawdzę czy może coś nie tak zrobiłem... No tak, rzecz głupia, zrobiłem literówkę w nazwie funkcji w onload... Natomiast od razu okazało się, że niestety metoda nie jest do końca ok. Tzn. co do zasady działa poprawnie, czyli faktycznie czyści title="", natomiast lightbox na tym się wykłada, bo te dane do wyświetlenia pod zdjęciem bierze prosto z title="", które w momencie kliknięcia jest wyczyszczone :/ I koło się zamyka :]
lord_t
2.03.2009, 09:42:42
To przerób lightboxa tak, żeby np. korzystał z atrybutu rel(lub innego), wtedy Ci się nie wyświetli:)
Cytat
natomiast lightbox na tym się wykłada, bo te dane do wyświetlenia pod zdjęciem bierze prosto z title=""
Robisz tak, jak napisał
~lord_t albo modyfikujesz mój kod tak, aby przywracał stary tytuł nie po zjechaniu kursora z obiektu, tylko po kliknięciu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.