Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Skrypt z wyskakującym okienkiem ucieka poza okno przeglądarki, Jak temu zaradzić? Jaką pozycje okienka podać?
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.
Znalazłem bardzo fajny i prosty skrypt do obsługi okienek tzw tooltip.

Problem w tym, że jak myska jest z boku ekranu, to okienko dalej wyskakuje na prawo i ucieka poza przeglądarke.

Standardowy kod:
Kod
this.screenshotPreview = function(){    
    /* CONFIG */
        
        xOffset = 10;
        yOffset = 30;
        
        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result
        
    /* END CONFIG */
    $("a.screenshot").hover(function(e){
        this.t = this.title;
        this.title = "";    
        var c = (this.t != "") ? "<br/>" + this.t : "";
        $("body").append("<p id='screenshot'><img src='"+ this.rel +"' alt='url preview' />"+ c +"</p>");                                
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");                        
    },
    function(){
        this.title = this.t;    
        $("#screenshot").remove();
    });    
    $("a.screenshot").mousemove(function(e){
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });            
};


// starting the script on page load
$(document).ready(function(){
    screenshotPreview();
});


Czy byłby ktoś w stanie mi pomóc, jak wyliczyc tą pozycje? w komentarzach na stronei skryptu jest dużo wypowiedzi, próbowałem kilka wykorystać, ale coś żaden sposób nie działa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
zembi1991
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 20.02.2010

Ostrzeżenie: (0%)
-----


jeżeli dobrze zrozumiałem i masz okienko wyskakujące koło kursora po najechaniu na jakis element po prawej stronie(przykładowo) i problem tkwi w tym iż w przypadku gdy ten element jest przy prawej krawędzi strony to okienko wyskakuje poza jej obrys (poszerzając stronę) to proponuję najpierw oszacować jakos szerokość wyskakującego okienka a nastepnie sprawdzić czy pozycja (x-owa) elementu do którego się odwolujesz przy ustawianiu pozycji tooltip'a jest wieksza od [window.outerWidth - 'szerokość okienka' ] i jeśli tak to ustawić pozycję wyskakującego okienka w tkai sposób aby wyswietlał się po lewej stronie,
jeśli namieszałem , a dobrze zrozumiałem o co CI chodzi to pisz, postarma sie to wytlumaczyć inaczej tongue.gif
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


tak, własnie o to chodzi, że jak element w galerii jest już przy prawym boku akurat, to wyskakujące okienko juz jest poza oknem przeglądarki..

tylko, że niebardzo jest możłiwośc obliczenia szerokości tego okna.. może tam byćwszystko.. tzn wąskie zdjecie, albo szerokie, nei ma zasady :/

Ten post edytował kukix 2.06.2011, 10:05:33
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
tylko, że niebardzo jest możłiwośc obliczenia szerokości tego okna

Ale przecież szerokość okna, to zwykła własność JS... Poszukaj, bo na pewno jest.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kukix
post
Post #5





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Udało mi się częsciowo poprawić ten skrypt:

Mianowicie poprawiłem końcówkę:

Kod
$(".imageTooltip").mousemove(function(e){
var posY;

if (e.pageY - $(window).scrollTop() + $('#screenshot').height() >= $(window).height() ) {
  posY = $(window).height() + $(window).scrollTop() - $('#screenshot').height() - 15;
} else {
  posY = e.pageY - 15;
}

$("#tooltip")
  .css("top",(posY) + "px")
  .css("left",(e.pageX + 15) + "px");

});


i teraz już wyskakujące okienko nie rozciąga stronę na wysokość..

Problem jest jednak ze współrzędną X.. okienko ucieka poza okno przeglądarki na prawo..

Czy mógłby ktoś pomóc mi obliczyć tą współrzędną X?


Ten post edytował kukix 2.07.2011, 12:53:12
Go to the top of the page
+Quote Post
yta
post
Post #6





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

Ostrzeżenie: (0%)
-----


pomógł obliczyć ?
wstawiaj wartości o 5więcej więcej aż w końcu będzie dobrze masz teraz 15 to może spróbuj zmiejszyć do 10 nic nie da to daj 5 kąbinuj
możliwości masz sporo , nikt nie powie Ci że bedzie to 53px .. bo skąd ktoś ma to wiedzieć ?...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:39