Avatar billede Jingz Nybegynder
21. juni 2011 - 18:37 Der er 4 kommentarer og
1 løsning

Custom curser med draw line effect

Hej allesammen.

Jeg er lidt ude på dybt vand tror jeg.

Jeg skal have lavet en cursor på en hjemmeside, som fungerer som det target der er på en radar. Altså skal jeg:

- Have lavet en lille rund cursor med et kryds i (Kan jeg vist godt finde ud af).

- Have lavet lodret og vandret linje fra cursoren, til kanten af skærmen (Her skal jeg have noget hjælp).

Jeg ved at man med JavaScript eller igennem jQuery plugin kan monitor hvor cursoren befinder sig, men hvordan kan jeg så tegne en linje til kanten af skærmen, som opdaterer i realtime, uden af sænke siden helt.

Håber nogen kan være behjælpelige.

Mvh Jingz
Avatar billede Jingz Nybegynder
21. juni 2011 - 23:15 #1
Okay, nu har jeg været ved at lege med det og er næsten i mål.

Min kode ser således ud:

<style>

.cursorX    {

    background-color:#000;

    width:100%;

    height:1px;

    position:absolute;

    top:-50px;

    left:-50px;

}

.cursorY  {

    background-color:#000;

    width:1px;

    height:100%;

    position:absolute;

    top:-50px;

    left:-50px;

}

</style>

<script type="text/javascript" >


$(document).ready(function() {

$(document).mousemove(function(e) {


        cursorX = $('<span>').attr({class: 'cursorX'});

        $(document.body).append(cursorX);

        cursorX.css({

            top: e.pageY,

            left: 0

        });

        cursorY = $('<span>').attr({class: 'cursorY'});

        $(document.body).append(cursorY);

        cursorY.css({

            top: 0,

            left: e.pageX

        });

});

});

</script>



Det fungerer ganske perfekt, på nær at den ikke sletter stregerne igen, så efterhånden bliver hele skærmen sort. Jeg skal have en slags callback der fjerner stregen efter man er kørt væk fra den.

Nogen der kan hjælpe?

Mvh Jingz
Avatar billede intenz Novice
22. juni 2011 - 08:46 #2
Du skal bare sørge for, at elementerne kun bliver indsat én gang.
Man kunne f.eks. omskrive din funktion til:


var cross = (function() {
    var cursorX = $('<div>').attr({'class': 'cursorX'}),
    cursorY = $('<div>').attr({'class': 'cursorY'}),
    isVisible = {
        'x': false,
        'y': false
    };

    function getX() {
        if (!isVisible.x) {
            $(document.body).append(cursorX);
            visibleX = true;
        }
        return cursorX;
    }

    function getY() {
        if (!isVisible.y) {
            $(document.body).append(cursorY);
            visibleY = true;
        }
        return cursorY;
    }

    return {
        'move': function(e) {
            var x = getX();
            x.css({
                top: e.pageY,
                left: 0
                });
            var y = getY();
            y.css({
                top: 0,
                left: e.pageX
                });
        }
    }
})();

$(document).ready(function() {
    $(document).mousemove(function(e) {
        cross.move(e);
    });
});
Avatar billede intenz Novice
22. juni 2011 - 08:51 #3
Hov, der var en lille detalje jeg havde overset. Her kommer lige en ny:


var cross = (function() {
    var cursorX = $('<div>').attr({'class': 'cursorX'}),
    cursorY = $('<div>').attr({'class': 'cursorY'}),
    isVisible = {
        'x': false,
        'y': false
    };

    function getX() {
        if (!isVisible.x) {
            $(document.body).append(cursorX);
            isVisible.x = true;
        }
        return cursorX;
    }

    function getY() {
        if (!isVisible.y) {
            $(document.body).append(cursorY);
            isVisible.y = true;
        }
        return cursorY;
    }

    return {
        'move': function(e) {
            var x = getX();
            x.css({
                top: e.pageY,
                left: 0
                });
            var y = getY();
            y.css({
                top: 0,
                left: e.pageX
                });
        }
    }
})();

$(document).ready(function() {
    $(document).mousemove(function(e) {
        cross.move(e);
    });
});

Avatar billede Jingz Nybegynder
22. juni 2011 - 12:13 #4
Kanon!

Nu virker det helt perfekt. Tusind tak for det :)
Avatar billede intenz Novice
22. juni 2011 - 12:34 #5
Det var så lidt, god fornøjelse med det :)
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