Avatar billede bbe1379 Nybegynder
11. maj 2001 - 02:20 Der er 1 kommentar og
1 løsning

Klip hul i lag

Hvem kan lave et lille script, der gør følgende:

Jeg vil placere to billeder lige over hinanden i hvert sit lag. Når man kører musen over billedet i øverste lag clip\'er den hul i det, så man kan se billede neden under i et lille område omkring muse-markøren.

Jeg har skrabet nedenstående kode op til at følge musen, men ka\' sgu ikke hitte ud af resten.

var ie;
var ns;
var lPointer;

function moveTo(obj,x,y) {
    obj.xpos = x;
    obj.left = obj.xpos;
    obj.ypos = y;
    obj.top = obj.ypos;
}


function opdater(e) {

    var x = (ns4) ? e.pageX : event.x + document.body.scrollLeft;
    var y = (ns4) ? e.pageY : event.y + document.body.scrollTop;

    x += 10;
    y += 10;

    moveTo(lPointer, x, y);

}

function init() {

    ie4 = (document.all) ? true : false;
    ns4 = (document.layers) ? true : false;

    if (ns4) {
        document.captureEvents(Event.MOUSEMOVE)
    }
    document.onmousemove = opdater;
    if (ns4) lPointer = document.pointer
    if (ie4) lPointer = pointer.style
    lPointer.xpos = parseInt(lPointer.left)
    lPointer.ypos = parseInt(lPointer.top)

}


...den flytter dette lag sammen med musen:

<div id=\"pointer\" style=\"height: 20; width: 19; left: 200; top: 200; position: absolute; z-index: 100\">
muse-ting</div>
Avatar billede zteven Nybegynder
11. maj 2001 - 13:49 #1
Dette script er måske ikke lige hvad du søger, men kig på det!

http://www.bratta.com/dhtml/scripts.asp
under spotlight
Avatar billede bbe1379 Nybegynder
11. maj 2001 - 13:51 #2
Nej, ikke helt :-)

jeg har selv løst den:

<html>
<head>
<title></title>
<script language=\"JavaScript\">
<!--

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function init() {
    if (ns4) block = document.blockDiv
    if (ie4) block = blockDiv.style
}

function clipValues(obj,which) {
    if (ns4) {
        if (which==\"t\") return obj.clip.top
        if (which==\"r\") return obj.clip.right
        if (which==\"b\") return obj.clip.bottom
        if (which==\"l\") return obj.clip.left
    }
    else if (ie4) {
        var clipv = obj.clip.split(\"rect(\")[1].split(\")\")[0].split(\"px\")
        if (which==\"t\") return Number(clipv[0])
        if (which==\"r\") return Number(clipv[1])
        if (which==\"b\") return Number(clipv[2])
        if (which==\"l\") return Number(clipv[3])
    }
}

function clipTo(obj,t,r,b,l) {
    if (ns4) {
        obj.clip.top = t
        obj.clip.right = r
        obj.clip.bottom = b
        obj.clip.left = l
    }
    else if (ie4) obj.clip = \"rect(\"+t+\"px \"+r+\"px \"+b+\"px \"+l+\"px)\"
}

function clipBy(obj,t,r,b,l) {
    if (ns4) {
        obj.clip.top = clipValues(obj,\'t\') + t
        obj.clip.right = clipValues(obj,\'r\') + r
        obj.clip.bottom = clipValues(obj,\'b\') + b
        obj.clip.left = clipValues(obj,\'l\') + l
    }
    else if (ie4) obj.clip = \"rect(\"+(this.clipValues(obj,\'t\')+t)+\"px \"+(this.clipValues(obj,\'r\')+r)+\"px \"+Number(this.clipValues(obj,\'b\')+b)+\"px \"+Number(this.clipValues(obj,\'l\')+l)+\"px)\"
}

//-->
</SCRIPT>

</HEAD>

<BODY BGCOLOR=\"#FFFFFF\" onLoad=\"init()\">

<DIV ID=\"blockDiv\" STYLE=\"position:absolute; left:0; top:145; width:250; height:300; clip:rect(0,0,0,0); z-index: 1\"><img src=\"assets/front/came_color_img.jpg\">
</DIV>

<div id=\"Layer1\" style=\"position:absolute; left:0; top:145; width:250; height:300; z-index:0\">
<img src=\"assets/front/came_img.jpg\" width=\"250\" height=\"259\">
</div>


<Script>

var lPointer;
if (ns4) block = document.blockDiv
if (ie4) block = blockDiv.style

function opdater(e) {

    var x = (ns4) ? e.pageX : event.x + document.body.scrollLeft;
    var y = (ns4) ? e.pageY : event.y + document.body.scrollTop;

    x += 10;
    y += 10;

    clipTo(block,0,x,250,x-50)

}

function init() {

    ie4 = (document.all) ? true : false;
    ns4 = (document.layers) ? true : false;

    if (ns4) {
        document.captureEvents(Event.MOUSEMOVE)
    }
    document.onmousemove = opdater;

}
</Script>


</BODY>
</HTML>
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