Layer clippen
Torsche
- javascript
Hallo
Ich möchte einen angezeigten Layer beschneiden.Jedoch wenn ich dies ausführen will schneidet er den ganzen Layer weg.
<html><head><title>Div clippen</title>
<style>
.pos1{position:absolute;left: 0px; top: 100px; width: 570; height: 100; background-image: URL('line.gif');}
</style>
</head>
<script>
function schneid(t,r,b,l)
{
if (document.layers)
{
document.t0.clip.top = t
document.t0.clip.right = r
document.t0.clip.bottom = b
document.t0.clip.left = l
}
else if(document.all)
{
document.all.t0.style.clip = "rect("+t+"px, "+r+"px, "+b+"px, "+l+"px)"
}
}
</script>
<body>
<div id="t0" class="pos1"></div>
<A HREF="javascript:schneid(50,50,50,0);">schneide</a>
</body>
</html>
Wo bin ich hier auf dem falscchen Weg?Und würde der Netscape 6 dann evntuell so angesprochen beim clippen:
else{document.getElementById.t0.style.clip = "rect("+t+"px, "+r+"px, "+b+"px, "+l+"px)"}
??
mfg Torsche
Hi Du,
habe Deinen Source nicht getestet, hier ist aber 'ne von mir geschriebene Function, die min. auf IE4+, NN4 und NN6 läuft:
if (document.layers) setClip = function setClip(name, left,top,right,bottom)
{ with (document.layers[name].clip)
{ top = setClip.top; left = setClip.left;
right = setClip.right; bottom = setClip.bottom;}
}
else if (document.all) setClip = function setClip(name, left,top,right,bottom)
{ document.all.tags("div")[name].style.clip = eval('"rect('+top+'px '+right+'px '+bottom+'px '+left+'px)"');}
else if (document.getElementById) setClip = function setClip(name, left,top,right,bottom)
{ document.getElementById(name).style.clip = eval('"rect('+top+'px '+right+'px '+bottom+'px '+left+'px)"');}
else setClip = function setClip(){};
Mirko
... begraben zu sein:
[...]
.pos1{position:absolute;left: 0px; top: 100px; width: 570; height: 100; background-image: URL('line.gif');}
[...]
document.t0.clip.top = t
[...]
<div id="t0" class="pos1"></div>
[...]
Dein Layer heißt t0, der Fehler liegt wohl in der Style Angabe im Head. So sollte es besser sein, oder? :
.t0{position:absolute;left: 0px; top: 100px; width: 570; height: 100; background-image: URL('line.gif');}
pos1 sollte hingegen eine CSS-Klassen Angabe sein (Schriftformatierung etc.).
Mirko
Hallo
Ich möchte einen angezeigten Layer beschneiden.Jedoch wenn ich dies ausführen will schneidet er den ganzen Layer weg.
Ist bei Deinen Werten auch klar:
<A HREF="javascript:schneid(50,50,50,0);">
(top, right, bottom, left)
Zum clippen muß Wert für bottom höher als der Wert für Top, sowie der Wert für right wiederum höher als für left sein.
Wird dies nicht beachtet, wird der Layer komplett abgeschnitten. Steht IMO auch irgenwo im SELFHTML.
_javascript:schneid(50,50,60,0)_ wird von Deinem Script sauber ausgeführt.
Viele Grüße aus Köln
Markus
Markus danke das wars:-).
mfg Torsche