Drop down menu modifications

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
sneaky
Δημοσιεύσεις: 18
Εγγραφή: 21 Νοέμ 2006 12:31

Drop down menu modifications

Δημοσίευση από sneaky » 06 Ιαν 2008 18:55

Σε ένα forum έχω αλλάξει το theme αλλά έχω ένα "πρόβλημα" με το menu του. Αυτό που θέλω να γίνεται είναι όταν κάποιος κάνει κλικ στο menu
να ανοίγει ένα drop down όπως και δουλεύει αυτό αλλά αυτό που δεν μπορώ να κάνω είναι με το που κάνει κλικ οπουδήποτε στην σελίδα να κλείνει το menu
και μόλις πάει το mouse στο επόμενο drop down να ανοίγει αυτόματα χωρίς να πρέπει να κάνει κλικ πάνω του (όπως στο menu του vbulletin).
Αυτό είναι το script που έχει μέσα:

Κώδικας: Επιλογή όλων

<script type="text/javascript">

/***********************************************
* Drop Down/ Overlapping Content- © Dynamic Drive &#40;www.dynamicdrive.com&#41;
* This notice must stay intact for legal use.
* Visit http&#58;//www.dynamicdrive.com/ for full source code
***********************************************/

function getposOffset&#40;overlay, offsettype&#41;&#123;
var totaloffset=&#40;offsettype=="left"&#41;? overlay.offsetLeft &#58; overlay.offsetTop;
var parentEl=overlay.offsetParent;
while &#40;parentEl!=null&#41;&#123;
totaloffset=&#40;offsettype=="left"&#41;? totaloffset+parentEl.offsetLeft &#58; totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
&#125;
return totaloffset;
&#125;

function overlay&#40;curobj, subobjstr, opt_position&#41;&#123;
if &#40;document.getElementById&#41;&#123;
var subobj=document.getElementById&#40;subobjstr&#41;
subobj.style.display=&#40;subobj.style.display!="block"&#41;? "block" &#58; "none"
var xpos=getposOffset&#40;curobj, "left"&#41;+&#40;&#40;typeof opt_position!="undefined" && opt_position.indexOf&#40;"right"&#41;!=-1&#41;? -&#40;subobj.offsetWidth-curobj.offsetWidth&#41; &#58; 0&#41; 
var ypos=getposOffset&#40;curobj, "top"&#41;+&#40;&#40;typeof opt_position!="undefined" && opt_position.indexOf&#40;"bottom"&#41;!=-1&#41;? curobj.offsetHeight &#58; 0&#41;
subobj.style.left=xpos+"px"
subobj.style.top=ypos+"px"
return false
&#125;
else
return true
&#125;

function overlayclose&#40;subobj&#41;&#123;
document.getElementById&#40;subobj&#41;.style.display="none"
&#125;

</script>
Οι επιλογές για το άνοιγμα και κλείσιμο του menu είναι αυτές:
Για το άνοιγμα του ενός

Κώδικας: Επιλογή όλων

onClick="return overlay&#40;this, \'subcontent\',\'bottom\'&#41;">'


Κλείνει έτσι:

Κώδικας: Επιλογή όλων

href="#" onClick="overlayclose&#40;\'subcontent\'&#41;; return false">&#91;Κλείσιμο&#93;</a> 


Και το άλλο:
Άνοιγμα

Κώδικας: Επιλογή όλων

'#quicklinks" onClick= "return overlay&#40;this, \'quicklinks\',\'bottomright\'&#41;">Βοηθήματα&#8230;.. 


Κλείσιμο

Κώδικας: Επιλογή όλων

href="#" onMouseout="overlayclose&#40;\'quicklinks\'&#41;; return false">&#91;Κλείσιμο&#93;</a> 

Το μόνο που κατάφερα είναι να κλείνει απλά όταν περνάς το mouse πάνω από εκεί που λέει [Κλείσιμο].

Ελπίζω να έγινα κατανοητός. :)

sneaky
Δημοσιεύσεις: 18
Εγγραφή: 21 Νοέμ 2006 12:31

Drop down menu modifications

Δημοσίευση από sneaky » 19 Ιαν 2008 00:40

Μάλλον αυτό που ζητάω είναι αρκετά δύσκολο.
Καμία άλλη ιδέα να είναι κάπως καλύτερο αντί να κάνει "100" κλικ?

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες