Avatar billede webdesigner Praktikant
16. maj 2006 - 00:26 Der er 8 kommentarer og
1 løsning

højre klik med mus i browser, show Layer position i forhold til.

hej jeg vil gerne have at vide hvor jeg kan finde et script.
der vil tillade mig at vise en layer nå jeg højre kliker i browseren og den sakl vise layeren relavtivt til musens position når der klikes.. tak :)
Avatar billede olebole Juniormester
16. maj 2006 - 01:23 #1
<ole>

<script>
window.onload = function() {
    document.oncontextmenu = function(e) {
        e = e ? e : window.event;
        var oDoc, css = document.getElementById("contxtMenu").style;
        oDoc = document.documentElement;
        css.left = (e.clientX+oDoc.scrollLeft) + "px";
        css.top = (e.clientY+oDoc.scrollTop) + "px";
        css.display = "block";
        e.cancelBubble = true;
        if (e.stopPropagation) e.stopPropagation();
        if (e.preventDefault) e.preventDefault();
        e.returnValue = false;
    }
    document.onclick = function() {
        document.getElementById("contxtMenu").style.display = "none";
    }
}
</script>

<div id="contxtMenu" style="position:absolute;width:130px;height:100px;z-index:100;display:none;background:yellow">
Blablabla
</div>

- men det forudsætter, du bruger en fuld DTD ... f.eks:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

/mvh
</bole>
Avatar billede roenving Novice
16. maj 2006 - 06:02 #2
-- og så forudsætter det også, at browseren forstår oncontextmenu, dvs. er lavet af en lille program-producent i Seattle !-)
Avatar billede webdesigner Praktikant
16. maj 2006 - 23:49 #3
hej ole
OG tak for et hurtigt og godt svar...

hvis det ikke er for megt ville jeg gerne have et script der kan trække layeren rund på siden.

Smidet et svar så kan jeg give dig point...
Avatar billede olebole Juniormester
17. maj 2006 - 00:45 #4
roenving >> Hvis der er tale om en browser, der er lavet af en flok velmenende, men halvstuderede spejderdrenge, gør det såmænd heller ikke noget  ;o)

Er der derimod tale om en browser, skrevet af en flok bjældesvingende, methanoldrikkende sæterbønder, kan det dog knibe. Min egen er en version 7.54, som jeg beholder, da der er så mange dejlige fejl i den, at den er god at udvikle til ... der virker oncontextmenu ikke. Men mon ikke, selv Norge har opdaget den event, efterhånden?  :)

Nej, jeg skriver ikke også et drag/drop-script nu. Det orker jeg ikke lige nu
Avatar billede olebole Juniormester
17. maj 2006 - 00:47 #5
Jeg har faktisk noget gammelt drag/drop liggende ... tror det oprindelig var noget DynamicDrive-noget:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Drag eksempel</title>
<style type="text/css">
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
.drag {
    position: relative;
    border: 2px solid red;
    background: yellow;
    padding: 3px;
    cursor: move;
}
</style>
<script type="text/JavaScript">
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var dragapproved = false;
var z,x,y;

function move(e) {
    if (dragapproved) {
        z.style.left = ns6? temp1+e.clientX-x : temp1+event.clientX-x;
        z.style.top = ns6? temp2+e.clientY-y : temp2+event.clientY-y;
    }
    return false;
}

function drags(e) {
    if (!ie && !ns6) return;
    var firedobj = ns6? e.target : event.srcElement;
    var topelement = ns6? "HTML" : "BODY";
   
    while (firedobj.tagName!=topelement && firedobj.className!="drag") {
        firedobj = ns6? firedobj.parentNode : firedobj.parentElement;
    }
   
    if (firedobj.className=="drag") {
        dragapproved = true;
        z = firedobj;
        temp1 = parseInt(z.style.left+0);
        temp2 = parseInt(z.style.top+0);
        x = ns6? e.clientX: event.clientX;
        y = ns6? e.clientY: event.clientY;
        document.onmousemove = move;
    }
    return false;
}
document.onmousedown = drags;
document.onmouseup = function(){
    dragapproved = false;
}
</script>
</head>
<body>
<span class='drag'>Span 1</span>
<span class='drag'>Span 2</span>
<span class='drag'>Span 3</span>
</body>
</html>

- så må du selv tage den derfra  :)
Avatar billede olebole Juniormester
17. maj 2006 - 00:48 #6
- og det er ikke en kode, jeg som sådan står inde for. På den anden side er den heller ikke rigtig slem  :)
Avatar billede webdesigner Praktikant
17. maj 2006 - 10:40 #7
HEJ igen mange tak
men den virker ikke...
men lukker nu og du fortjæner dine point og dit karma :)
Avatar billede olebole Juniormester
22. maj 2006 - 15:44 #8
Jamen, jeg takker mange gange for begge  ;o)

Jeg har ikke set indlægget før nu, da der er rod med mail-udsendingen for tiden ... men det har de telefonisk lovet, skulle blive rettet hurtigt ... så det må vi jo bare håbe på. Hygge ...  =)
Avatar billede olebole Juniormester
22. maj 2006 - 15:49 #9
- og så fandt jeg lige fejlen:

function move(e) {
    if (dragapproved) {
        z.style.left = (ns6? temp1+e.clientX-x : temp1+event.clientX-x) + "px";
        z.style.top = (ns6? temp2+e.clientY-y : temp2+event.clientY-y) + "px";
    }
    return false;
}

Der manglede enheder ('px') på CSS-værdierne. Når det alligevel virkede i IE, er det en fejl ... naturligvis skal de på. Sorry ...  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester