Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    posizionare popup in base al link di lancio

    Ho una pagina, in cui ci sono dei campi di input che utilizzano il classico calendario per popolare di dati il campo stesso.
    Per una serie di ragioni, dovute alla particolarità della pagina, la scelta è caduta su un semplice e vecchio JavaScript, che apre il calendario in una popup.
    Però, la pagina ne contiene svariati, ed in numero variabile, nel senso che - tramite request AJAX - l'utente sceglie (tra l'altro) quanto campi data saranno presenti nella pagina.
    Di conseguenza, mi serve posizionare la popup, di volta in volta, relativamente al campo di input per il quale è stata attivata. Diciamo, ad es., che deve avere l'angolo sinistro spostato 50px in basso e 50px a destra dell'icona cliccata. E questo, ovviamente, per ciascuna (possibile) icona, le cui cui posizioni sono - come la quantità - del tutto imprevedibili.
    Attualmente, il JS che sto usando utilizza questa formula, per aprire/posizionare:
    Codice PHP:
        var obj_calwindow window.open(
            
    'calendar.html?datetime=' this.dt_current.valueOf()+ '&id=' this.id,
            
    'Calendar''width=200,height='+(this.time_comp 215 190)+
            
    ',status=no,resizable=no,toolbar=no,top=300,left=700,dependent=yes,alwaysRaised=yes'
        
    ); 
    Io vorrei sostituire a quella parte di stringa (top=300,left=700 ) qualcosa che posizioni la popup non relativamente alla finestra, ma relativamente all'oggetto cliccato (in questo caso sarà sempre un file immagine, la classica iconcina); ovviamente, posso identificare ciascuna icona con un id specifico...
    Ma non mastico abbastanza di JS per avventurarmi da solo... e le ricerche (finora) non hanno prodotto grandi risultati...
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Ho provato - sulla base di varie ricerche - a fare questa modifica al codice JS:
    Codice PHP:
     var leftproptoppropscreenXscreenYcursorXcursorYpadAmt  
    if(navigator.appName == "Microsoft Internet Explorer") {     
    screenY document.body.offsetHeight     screenX window.screen.availWidth 
    } else {          
    screenY screen.height;         
    screenX screen.width

    cursorX evnt.screenX     
    cursorY 
    evnt.screenY     
    padAmtX 
    10     
    padAmtY 
    10          
    if((cursorY height padAmtY) > screenY) {         
    padAmtY = (-30) + (height*-1);         
    }     
    if((
    cursorX width padAmtX) > screenX) {         
    padAmtX = (-30) + (width*-1);         
    }      
    if(
    navigator.appName == "Microsoft Internet Explorer") {         
    leftprop cursorX padAmtX         
    topprop 
    cursorY padAmtY     
    } else {          
    leftprop = (cursorX pageXOffset padAmtX)         
    topprop = (cursorY pageYOffset padAmtY)     
    }     
    if (!
    this.dt_current) return;     
    var 
    obj_calwindow window.open('calendar.html?datetime=' this.dt_current.valueOf()+ '&id=' this.id,'Calendar''width=200,height='+(this.time_comp 215 190)+',status=no,resizable=no,toolbar=no,top='+topprop+',left='+leftprop+',dependent=yes,alwaysRaised=yes'); 
    ma non funziona, non si aprono proprio più le popup!!!
    metatad
    graphic & web design

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    continuando a provare, ho deciso di utilizzare le coordinate del mouse (quando clicca, sta proprio sull'icona...), ed ho scritto questo:
    Codice PHP:
    var tempX 0;
    var 
    tempY 0;
    document.onmousemove getMouseXY;

    function 
    getMouseXY(e) {

    leftprop e.clientX+30;
    topprop e.clientY-160;
    ...
    var 
    obj_calwindow window.open('calendar.html?datetime=' this.dt_current.valueOf() + '&id=' this.id,'Calendar''width=200,height=' + (this.time_comp 215 190) + ',top=' topprop 'px,left=' leftprop 'px'

    Funziona perfettamente in FF, ma - che te lo dico a fà?... - non su IE (8).
    Come posso risolvere? Vorrei riuscire ad andare avanti, senza restare incatenato a queste str......
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    up?
    metatad
    graphic & web design

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.