Avatar billede first-8 Nybegynder
16. februar 2002 - 12:21 Der er 16 kommentarer og
1 løsning

Usynlig cursor

Jeg ville bare høre, om det er muligt at lave en usynlig cursor. Jeg sidder og roder med et script jeg fandt på www.dhtmlcentral.com - Det ser således ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML LANG="da">
<head>
<title>Test</title>
<style type="text/css">
#divExCont {position:absolute; left:0px; top:0px; clip:rect(0px 0px 0px 0px); layer-background-color:#ffffff; background-color:#ffffff;}
#divCircle {position:absolute; z-index:500; visibility:hidden; width:170px;}
body      {background-color:#000000; overflow:hidden;}
</style>
<script language="JavaScript" type="text/javascript">
function lib_bwcheck(){ //Browsercheck (needed)
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent
    this.dom=document.getElementById?1:0
    this.opera5=this.agent.indexOf("Opera 5")>-1
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
    this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
    this.ie=this.ie4||this.ie5||this.ie6
    this.mac=this.agent.indexOf("Mac")>-1
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
    return this
}
var bw=new lib_bwcheck()



/*** Variables to set ***/
sCircleWidth = 12    //The width the script will clip to
sCircleHeight = 8    //The height the script will clip to
sStarty = 200        //Where do you want it to initially start
sStartx = 200        //Where do you want it to initially start
clipSpeed = 20        //Number of pixels for each step in the animation.

function makeObj(obj, nest, x, y){
    nest = (!nest) ? "":'document.'+nest+'.';                                       
      this.css = bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;       
    this.evnt = bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;                                                   
    this.clip = b_clip;
    this.clipIt = b_clipIt;
    this.clipTo = b_clipTo;
    this.obj = obj + "Object";
    eval(this.obj + "=this");
    return this;
}

// A unit of measure that will be added when setting the position or size of a layer.
var px = bw.ns4||window.opera?"":"px";

//clip part
function b_clipTo(t,r,b,l){
    if (bw.ns4){
        this.css.clip.top=t;this.css.clip.right=r;this.css.clip.bottom=b;this.css.clip.left=l;
    }
    else {
        this.css.clip="rect("+t+"px "+r+"px "+b+"px "+l+"px)";
    }
}
function b_clipIt(tstop,rstop,bstop,lstop,step,fn){
    if (!fn) fn = null
    var clipval = new Array()
    if (bw.dom || bw.ie4) {
        clipval = this.css.clip
        clipval = clipval.slice(5,clipval.length-1);
        clipval = clipval.split(' ')
        for (var i=0; i<4; i++) clipval[i] = parseInt(clipval[i])
    }
    else {
        clipval[0] = this.css.clip.top
        clipval[1] = this.css.clip.right
        clipval[2] = this.css.clip.bottom
        clipval[3] = this.css.clip.left
    }
    totantstep = Math.max(Math.max(Math.abs((tstop-clipval[0])/step),Math.abs((rstop-clipval[1])/step)),
        Math.max(Math.abs((bstop-clipval[2])/step),Math.abs((lstop-clipval[3])/step)))
    if (!this.clipactive)
        this.clip(clipval[0],clipval[1],clipval[2],clipval[3],(tstop-clipval[0])/totantstep,
            (rstop-clipval[1])/totantstep,(bstop-clipval[2])/totantstep,
                (lstop-clipval[3])/totantstep,totantstep,0, fn)
}
function b_clip(tcurr,rcurr,bcurr,lcurr,tperstep,rperstep,bperstep,lperstep,totantstep,antstep, fn){
    tcurr=tcurr+tperstep; rcurr=rcurr+rperstep
    bcurr=bcurr+bperstep; lcurr=lcurr+lperstep
    this.clipTo(tcurr,rcurr,bcurr,lcurr)
    if(antstep<totantstep){
        this.clipactive=true
        antstep++
        setTimeout(this.obj+".clip("+tcurr+","+rcurr+","+bcurr+","+lcurr+","+tperstep+","
            +rperstep+","+bperstep+","+lperstep+","+totantstep+","+antstep+",'"+fn+"')", 40)   
    }else{
        this.clipactive = false
        eval(fn)
    }
}
function spotInit(){
    pageWidth = (bw.ns4 || bw.ns6)?innerWidth:document.body.clientWidth;
    pageHeight = (bw.ns4 || bw.ns6)?innerHeight:document.body.clientHeight;
    oExCont = new makeObj('divExCont')
    if (bw.dom || bw.ie4){
        oExCont.css.width = pageWidth+px
        oExCont.css.height = pageHeight+px
    }
    oCircle = new makeObj('divCircle','divExCont')
    oExCont.clipTo(sStarty,sStartx+sCircleWidth,sStarty+sCircleHeight,sStartx)
    oCircle.css.left = sStartx+px
    oCircle.css.top = sStarty+px
    oCircle.css.visibility = "visible"
    if (bw.ns4)document.captureEvents(Event.MOUSEMOVE)
    document.onmousemove = moveCircle;
}
function moveCircle(e){
    x = (bw.ns4 || bw.ns6)?e.pageX:event.x
    y = (bw.ns4 || bw.ns6)?e.pageY:event.y
    oExCont.clipTo(y-sCircleHeight/2, x+sCircleWidth/2, y+sCircleHeight/2, x-sCircleWidth/2)
    oCircle.css.left = x - sCircleWidth/2 + px
    oCircle.css.top = y - sCircleHeight/2 + px
}
//This is being called when someone clicks the circle.
function showCont(){
    document.onmousemove = null
    oCircle.css.visibility = "hidden"
    oCircle.css.left = 0+px
    oCircle.css.top = 0+px
    oExCont.clipIt(-clipSpeed, pageWidth+clipSpeed, pageHeight+clipSpeed, -clipSpeed, clipSpeed, 'oExCont.css.overflow="auto"')
}

if (bw.bw) onload = spotInit
</script>
</head>

<!-- START DELETE -->
<div style="position:absolute; left:0; top:0"><a href="#" onclick="self.close(); return false"></a></div>
<br><br><br>
<!-- END DELETE -->

<div id="divExCont">
<div id="divCircle"><img src="http://www.ka0z-clan.subnet.dk/dan.gif" alt="" border="0"></a></div>

(Sæt det ind i en fil, så i kan se hvordan det foregår, medmindre i kan de det ud fra koden.)

Er det muligt, om man kunne fjerne pil-cursoren, måske ved hjælp as CSS, eller hvad ved jeg..?

Avatar billede Slettet bruger
16. februar 2002 - 12:25 #1
nej. Det er ikke muligt at fjerne cursoren, men du kan ændre typen af den til timeglas, spørgsmål osv.
Avatar billede first-8 Nybegynder
16. februar 2002 - 12:45 #2
ok - tak. men hvad er navnene på de forskellige cursorer? jeg kan kun huske default, hand og crosshair. Gider du ikek lige poste resten, hvis du har dem?
Avatar billede tipsen Nybegynder
16. februar 2002 - 13:32 #4
vær opmærksom på den begrænsede browsersupport til dette...
Avatar billede rune_c Nybegynder
16. februar 2002 - 13:34 #5
du kan vel lave din egen cursor, evt. en lille prik, og derefter loade den med style="curcor:url(custom.cur)". Jeg ved ikke om dette understøttes i andre browsere end ie
Avatar billede rune_c Nybegynder
16. februar 2002 - 13:36 #6
nåå..hverken Netscape 6.2 eller Opera 6 duer det i
Avatar billede tipsen Nybegynder
16. februar 2002 - 13:37 #7
eller sagt på en anden måde fungerer det kun i ie, da det ikke er w3 standard...
Avatar billede first-8 Nybegynder
16. februar 2002 - 14:29 #8
Ok, tak. Men jeg kan ikke loade min cursor rigtigt. Rune, kan du ikke give et eksempel, når den nye cursor skal vises, når man holder musen over et link?
Avatar billede tipsen Nybegynder
16. februar 2002 - 14:37 #9
Benytter du IE6?
Avatar billede rune_c Nybegynder
16. februar 2002 - 15:39 #10
<a href="etellerandet.html" style="url("/mappe/cursor.cur")">Hej</a>
Avatar billede rune_c Nybegynder
16. februar 2002 - 15:39 #11
og det virker KUN i IE 6
Avatar billede first-8 Nybegynder
16. februar 2002 - 16:46 #12
Ja, jeg benytter IE 6.

Rune >> tak ;)
Avatar billede first-8 Nybegynder
16. februar 2002 - 16:52 #13
Hmm.. Det virker alligevel ikke :-/
Findes der nogen begrænsning for cursorstørrelsen?
Avatar billede rune_c Nybegynder
16. februar 2002 - 17:07 #14
hvordan ser din kode ud?

Jeg ved ikke om der er nogen begrænsninger for cursorstørrelsen
Avatar billede first-8 Nybegynder
17. februar 2002 - 13:43 #15
Min kode er bare således, som du har lavet den til mig...

<a href="etellerandet.html" style="url("d:\hp\cursor.cur")">Hej</a>

Jeg mener cursoren er på 10x10 px.
Avatar billede tipsen Nybegynder
17. februar 2002 - 14:03 #16
prøv at rette til:

<a href="etellerandet.html" style="url('d:\hp\cursor.cur')">Hej</a>

eller:

<a href='etellerandet.html' style='url("d:\hp\cursor.cur")'>Hej</a>

desuden kan det være et problem, at du benytter backslash (\) i stedet for foreslash (/) - prøv evt. også at rette det, hvis det andet ikke fungerer!
Avatar billede tipsen Nybegynder
17. februar 2002 - 14:05 #17
til sidst er det nok også bedst, at du benytter en relativ url, dvs. skriver url('/images/cursor.cur') i stedet for d:\....
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