Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: menu tasto dx scroll

  1. #1

    menu tasto dx scroll

    Ciao a tutti...

    ho il seguente menu che sio attriva con tasto dx il problema è che viene visualizzato solo in cima alla pagina...cioè quando scorro la pagina con le barre laterali fino in fondo e poi clicco il dx il munu non mi appare o meglio mi appare in cima..quindi non lo vedo...e possibile renderlo scroll..grazie

    codice:
    //********Inizio codice js**********menu tasto dx
    
    
    var ie5 = (document.getElementById&&document.all);
    var n6   = (document.getElementById&&!document.all);
    var x,y,el,pageW,pageH;
    if (n6)  document.addEventListener("mouseup",showMenu,false);
    if (ie5) document.attachEvent("oncontextmenu",showMenu);
    if (ie5) document.attachEvent("onclick",showMenu);
    
    function showMenu(event) {
    if (document.getElementById) {
    pageW   = document.body.offsetWidth;
    pageH   = document.body.offsetHeight;
    x      = event.clientX
    y       = event.clientY
    el     = document.getElementById("menu");
    if ((ie5&&event.type=="contextmenu")||(n6 && event.which>1)) {
    if ((x+parseInt(el.offsetWidth))>=pageW) {
    x    = parseInt(el.offsetWidth);
    y    = parseInt(el.offsetHeight);
    }
    el.style.top=y+"px";
    el.style.left=x+"px";
    fadeIn();
    return false;
    }
    if ((ie5&&event.type=="click")||(n6 && event.which==1)) {
    el.style.visibility="hidden";
    fade_index = 0;
    }
    }
    }
    document.oncontextmenu=new Function("return false") ;
    
    fade_index = 0;
    
    function fadeIn() {
    if(ie5 || n6) {
      document.getElementById('menu').style.visibility = 'visible';
      if(ie5) {
      document.getElementById('menu').filters.alpha.opacity = fade_index;
      }
      if(n6) {
      document.getElementById('menu').style.MozOpacity = fade_index/100;
      }
      fade_index += 3;
      goIn = setTimeout("fadeIn()", 50);
      if(fade_index >= 100)
      clearTimeout(goIn);
    }
    }
    
    //End*************************End***************************End menu tasto dx
    codicd html per richiamarlo dalle pagine



  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    var ie5 = (document.getElementById&&document.all);
    var n6   = (document.getElementById&&!document.all);
    var x,y,el,pageW,pageH,scrollX,scrollY;
    if (n6)  document.addEventListener("mouseup",showMenu,false);
    if (ie5) document.attachEvent("oncontextmenu",showMenu);
    if (ie5) document.attachEvent("onclick",showMenu);
    
    function showMenu(event) {
    	if (document.getElementById) {
    	pageW   = document.body.offsetWidth;
    	pageH   = document.body.offsetHeight;
    	scrollX=(window.pageXOffset)?window.pageXOffset:document.body.scrollLeft
    	scrollY=(window.pageYOffset)?window.pageYOffset:document.body.scrollTop
    
    	x      = event.clientX
    	y       = event.clientY
    	el     = document.getElementById("menu");
    
    	if ((ie5&&event.type=="contextmenu")||(n6 && event.which>1)) {
    		if ((x+parseInt(el.offsetWidth))>=pageW) {
    			x -= parseInt(el.offsetWidth);
    		}
    		if ((y+parseInt(el.offsetHeight))>=pageH) {
    			y -= parseInt(el.offsetHeight);
    		}
    	el.style.top=y+scrollY+"px";
    	el.style.left=x+scrollX+"px";
    	fadeIn();
    	return false;
    }
    
    
    if ((ie5&&event.type=="click")||(n6 && event.which==1)) {
    el.style.visibility="hidden";
    fade_index = 0;
    }
    }
    }
    document.oncontextmenu=new Function("return false") ;
    
    fade_index = 0;
    
    function fadeIn() {
    if(ie5 || n6) {
      document.getElementById('menu').style.visibility = 'visible';
      if(ie5) {
      document.getElementById('menu').filters.alpha.opacity = fade_index;
      }
      if(n6) {
      document.getElementById('menu').style.MozOpacity = fade_index/100;
      }
      fade_index += 3;
      goIn = setTimeout("fadeIn()", 50);
      if(fade_index >= 100)
      clearTimeout(goIn);
    }
    }
    ciao

  3. #3
    grazie della celere risposta....

    la modifica funziona solo con NS, mentre con IE6 non funziona.......

    con opera non funziona per niente...ma questo lo faceva anche prima..

    come posso fare.....grazie 1000

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    mmm, il documento ha un doctype valido?
    senza doctype l' ho provato e funziona

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    allora, opera (se ben ricordo) non supporta l' oncontextmenu quindi non si può fare nulla
    x quanto riguarda ie con doctype valido l' ho sistemato
    codice:
    var ie5 = (document.getElementById&&document.all);
    var n6  = (document.getElementById&&!document.all);
    var ieValid = (ie5 && document.compatMode!="BackCompat");
    
    var x,y,el,pageW,pageH,scrollX,scrollY;
    var fade_index = 0;
    if (n6)  document.addEventListener("mouseup",showMenu,false);
    if (ie5) document.attachEvent("oncontextmenu",showMenu);
    if (ie5) document.attachEvent("onclick",showMenu);
    
    
    function showMenu(e) {
      if(!e) e = window.event;
      if (document.getElementById) {
        pageW=(window.innerWidth)?window.innerWidth:(ieValid)?document.documentElement.offsetWidth:document.body.offsetWidth;
        pageH=(window.innerHeight)?window.innerHeight:(ieValid)?document.documentElement.offsetHeight:document.body.offsetHeight;
        scrollX=(window.pageXOffset)?window.pageXOffset:(ieValid)?document.documentElement.scrollLeft:document.body.scrollLeft;
        scrollY=(window.pageYOffset)?window.pageYOffset:(ieValid)?document.documentElement.scrollTop:document.body.scrollTop;
    
        x=e.clientX
        y=e.clientY
        el=document.getElementById("menu");
    
        if ((ie5&&e.type=="contextmenu")||(n6 && e.which>1)) {
          if ((x+parseInt(el.offsetWidth))>=pageW) {
            x -= parseInt(el.offsetWidth);
          }
          if ((y+parseInt(el.offsetHeight))>=pageH) {
            y -= parseInt(el.offsetHeight);
          }
          el.style.top=y+scrollY+"px";
          el.style.left=x+scrollX+"px";
          fadeIn();
          return false;
        }
    
        if ((ie5&&e.type=="click")||(n6 && e.which==1)) {
          el.style.visibility="hidden";
          fade_index = 0;
        }
      }
    }
    
    document.oncontextmenu=new Function("return false") ;
    
    function fadeIn() {
    if(ie5 || n6) {
      document.getElementById('menu').style.visibility = 'visible';
      if(ie5) {
      document.getElementById('menu').filters.alpha.opacity = fade_index;
      }
      if(n6) {
      document.getElementById('menu').style.MozOpacity = fade_index/100;
      }
      fade_index += 3;
      goIn = setTimeout("fadeIn()", 50);
      if(fade_index >= 100)
      clearTimeout(goIn);
    }
    }
    sinceramente non mi è chiara la parte del click sinistro
    (poi azzererei l' opacità prima di far apparire il menù altrimenti appare sfumato solo la prima volta)
    ma se così funziona come vuoi tu non è un problema
    :ciauz:

  6. #6
    grazie mileeee :gren: :gren: funziona....per opera c'è un altro modo di far apparire un menu con tasto dx????

  7. #7
    ciao Xinod,
    scusa se ti rompo di nuovo...giuro è l'ultima cosa....

    il menu sotto che mi hai aggiustato da un problema in IE, quando gli utenti hanno attivato la visualizzazzione degli errori da questo errore:

    Necessario oggetto righa 165:



    codice:
    fade_index = 0;
    //ecco la righa

    cosa può essere...
    grazie ...

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non so, ho la visualizzazione degli errori sempre attiva e a me non esce nulla
    se puoi lasciare un link alla pagina in questione vediamo

  9. #9
    ok grazie..dell'aiuto ecco il link alla home

    www.lasercutinc.com/lasercuthome.htm

    l'errore viene fuori cliccando sia sui link del menu sopra che del menu sx

    ... attivato script debbuger..ma lo stesso non ci ho capito niente...

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    vedi, senza visionare il contesto sarebbe stato impossibile identificare l' errore

    gli errori avvengono perchè al click, sinistro e destro, compi operazioni con il menù contestuale
    il problema è che esso (il div che viene mostrato/nascosto etc) è presente solo nella pagina nel frame main
    mentre lo script esterno viene incluso anche negli altri frame, dove un click ovunque cercherebbe di operare con il menù assente

    la soluzione + rapida e indolore è preparare 2 js esterni, di cui uno, da includere solo nelle pagine da aprire in main,
    con tutte le istruzioni per il menù contestuale
    ciao

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.