Positionierung Kontextmenü
Ich versuche, die position, die ein eigenes Kontext-Menü mit jQuery.
Das erste mal wird er an der richtigen position (Maus-Koordinaten), aber dann wird die aktuelle position wird summiert, mit der neuen position, so dass das Menü verschwindet vom Bildschirm.
Hier ist das JavaScript:
<script>
$(function(){
$('#box').hide();
$(document).bind("contextmenu", function(e) {
$("#box").offset({left:e.pageX, top:e.pageY});
$('#box').show();
e.preventDefault();
});
$(document).bind("click", function(e) {
$('#box').hide();
});
$('#box').bind("click", function(e) {
$('#box').hide();
});
});
</script>
- Durch die Art und Weise,
.on()
hat verdrängt.bind()
in neueren Versionen von jQuery.
InformationsquelleAutor user1170330 | 2013-04-03
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht verwenden
offset
Methode versuchencss
statt, Positionierung Kontextmenü absolut:CSS:
http://jsfiddle.net/smxLk/
fixed
stattabsolute
. auf diese Weise kann nicht beeinflusst werden durch eine nicht-statische Eltern und es spielt keine Scrollleisten.position: fixed
macht Kontextmenü Verhalten sich seltsam :jsfiddle.net/smxLk/1 auf der Seite mit der langen Seite Inhalt.position:absolute
gut funktioniert: jsfiddle.net/smxLk/2. Ich denke auch, dass, bevor Sie sehen, wir haben zu prüfen, ob Menü erlischt der Bildschirm und fix seine position acordingly anderes Menü macht keinen Sinn, wenn es abgeschnitten.position:fixed
. XDDas problem ist, dass wenn Sie klicken Sie mit der linken Maustaste an anderer Stelle und dann mit der rechten klicken Sie erneut, die position ist falsch.
Die Wurzel des Problems ist, dass Sie den offset vor dem anzeigen der element. Es scheint, dass es verwirrt jQuery, wenn das element festgelegt ist
display:none
und dann den offset geändert wird.Problem zu beheben, müssen Sie schalten Sie die
show
und dieoffset
Zeilen in Ihrem code:wird
Demo
und
Quelle
Versuchen, die position: fixed; mit position des Kontext-Menü-änderungen auf der Grundlage der nachfolgenden Zustand -
http://jsfiddle.net/AkshayBandivadekar/zakn7Lwb/14/