Avatar billede crasher Nybegynder
17. december 2002 - 01:33 Der er 17 kommentarer og
1 løsning

ImgOver = Tekst

Hej :)

Jeg står og mangler et simpelt lille javascript der gør det muligt at tilføje en tekst i en lille tabel under mine billeder, når man fører musen derhen over.

På forhånd tak.

MVH Dennis
Avatar billede theselfimages Nybegynder
17. december 2002 - 02:01 #1
Avatar billede crasher Nybegynder
17. december 2002 - 13:30 #2
"når man fører musen derhen over", ellers tak.
Avatar billede pelkjaer Nybegynder
17. december 2002 - 13:31 #3
Du kan sagtens bruge det script - brug blot onmouseover/onmouseout istedet for onclick
Avatar billede crasher Nybegynder
17. december 2002 - 13:44 #4
Ok - det vil jeg så prøve.
Avatar billede crasher Nybegynder
17. december 2002 - 23:22 #5
det er ikke let når jeg ikke kan downloade .js filen?
Avatar billede olebole Juniormester
18. december 2002 - 00:21 #6
<ole>
Jo, kanon let - men det er kanon svært, når man ikke engeng prøver at kopiere koden og tester den  ;o)
/mvh
</bole>
Avatar billede crasher Nybegynder
18. december 2002 - 19:46 #7
Det har jeg selvfølgelig prøvet.
Avatar billede theselfimages Nybegynder
18. december 2002 - 19:55 #8
Så kan du lærer det... :)

<html>
<head>
<title>DHTMLCentral.com - Free Dynamic HTML Scripts - PopupDescriptions Demo</title>
<meta name="Author" content="Thomas Brattli (webmaster@dhtmlcentral.com)">
<META NAME="Generator" CONTENT="Designer:Thomas Brattli (www.bratta.com)">
<meta name="KeyWords" content="DHTML, HTML, Dynamic HTML, Javascript, Cascading Style Sheets, Cross-browser, Cross browser, Javascripts, DOM, Scripts, Free Scripts,popupdescriptions,text,popup,mouseover,messages,links,description,help,explain,">
<meta name="Description" content="Dynamic HTML Central - The ultimate place to find DHTML scripts, demos, tutorials and help.">
<style type="text/css">
.clDescriptionCont {position:absolute;  width:200px; visibility:hidden; layer-background-color:#cccccc; z-index:200;}
.clDescription    {width:150px; left:0px; top:0px; font-family:verdana,arial,helvetica,sans-serif; overflow:hidden; border: 1px solid #999999; padding:3px; font-size:11px; background-color:#cccccc; layer-background-color:#cccccc;}
.clLinks          {position:absolute; left:100px; top:200px; z-index:1;}
.clCaption        {position:absolute; left:0px; top:0px; width:157px; height:15px; clip:rect(0px 157px 15px 0px); font-size:11px; font-family:verdana,arial,helvetica,sans-serif; background-color:#999999; layer-background-color:#999999;}
</style>
<script language="JavaScript" type="text/javascript">
/********************************************************************************** 
PopupDescriptions
*  Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*  This script was released at DHTMLCentral.com
*  Visit for more great scripts!
*  This may be used and changed freely as long as this msg is intact!
*  We will also appreciate any links you could give us.
*
*  Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*********************************************************************************/

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:
***************************************************************************************/
messages=new Array()
//Write your descriptions in here.
messages[0] = "Description of test link 0 asd asd asd asd asd asd asd asd asd asd asd"
messages[1] = "Description of test link 1 asd asd asd asd asd asd asd asd asd as ds asdasd"
messages[2] = "Description of test link 2"
messages[3] = "Description of test link 3"
messages[4] = '<div class="clCaption">Your caption</div><br>Description of test link 4</div>'
//To have more descriptions just add to the array.

fromX = 50 //How much from the actual mouse X should the description box appear?
fromY = -20 //How much from the actual mouse Y should the description box appear?

//To set the font size, font type, border color or remove the border or whatever,
//change the clDescription class in the stylesheet.

//Makes crossbrowser object.
function makeObj(obj){                               
      this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj]:0;
    if(!this.evnt) return false
    this.css=bw.dom||bw.ie4?this.evnt.style:bw.ns4?this.evnt:0;   
      this.wref=bw.dom||bw.ie4?this.evnt:bw.ns4?this.css.document:0;       
    this.writeIt=b_writeIt;                                                               
    return this
}

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

function b_writeIt(text){
    if (bw.ns4){this.wref.write(text);this.wref.close()}
    else this.wref.innerHTML = text
}

//Capturing mousemove
var descx = 0
var descy = 0
function popmousemove(e){descx=bw.ns4||bw.ns6?e.pageX:event.x; descy=bw.ns4||bw.ns6?e.pageY:event.y}

var oDesc;
//Shows the messages
function popup(num){
    if(oDesc){
        oDesc.writeIt('<div class="clDescription">'+messages[num]+'</div>')
        if(bw.ie5||bw.ie6) descy = descy+document.body.scrollTop
        oDesc.css.left = (descx+fromX)+px
        oDesc.css.top = (descy+fromY)+px
        oDesc.css.visibility = "visible"
    }
}
//Hides it
function popout(){
    if(oDesc) oDesc.css.visibility = "hidden"
}
function setPopup(){
      if(bw.ns4)document.captureEvents(Event.MOUSEMOVE)
    document.onmousemove = popmousemove;
    oDesc = new makeObj('divDescription')
}
</script>
</head>

<body marginleft="0" marginheight="0">
<!-- START DELETE -->
<div style="position:absolute; left:0; top:0"><a href="#" onclick="self.close(); return false"><img src="/images/logo.gif" width="165" height="54" alt="" border="0" alt="Click to close window"></a></div>
<br><br><br>
<!-- END DELETE -->


<div id="divDescription" class="clDescriptionCont">
<!--Empty div-->       
</div>
<div id="divLinks" class="clLinks">
    <!-- Just delete this layer, it's just here for the example links -->
    <a href="#" onmouseover="popup(0)" onmouseout="popout()">test link 0</a> -
    <a href="#" onmouseover="popup(1)" onmouseout="popout()">test link 1</a> -
    <a href="#" onmouseover="popup(2)" onmouseout="popout()">test link 2</a> -
    <a href="#" onmouseover="popup(3)" onmouseout="popout()">test link 3</a> -
    <a href="#" onmouseover="popup(4)" onmouseout="popout()">test link 4</a>
</div>
<script type="text/javascript">setPopup()</script>




</body>
</html>
Avatar billede olebole Juniormester
18. december 2002 - 21:15 #9
crasher >> Da du ikke har opdaget det, må jeg jo så fortælle dig, at koden slet ikke importerer nogen js-fil - og at du derfor ikke skal bruge den  ;o)

Her er et lidt simplere script. Det understøtter de fleste browsere - herunder også Opera, der ikke understøttes af Thomas Brattli's ovenfor. Dog virker det ikke i NS4:


<html>
<head>
<style type="text/css">
.hidden_txt {
    visibility: hidden;
}
</style>
<script type="text/JavaScript">
var d=document;
function mOver(elm) {
    var divInx = elm.id.split("_")[1];
    d.getElementById( "text_" + divInx ).style.visibility = "visible";
}
function mOut(elm) {
    var divInx = elm.id.split("_")[1];
    d.getElementById( "text_" + divInx ).style.visibility = "hidden";
}
</script>
</head>
<body>

<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td><img id="pic_1" src="din_gif_1.gif" width="100" height="60" border="0"
        onmouseover="mOver(this);" onmouseout="mOut(this);">
        <div id="text_1" class="hidden_txt">blabla - Et</div></td>
</tr>
<tr>
    <td><img id="pic_2" src="din_gif_2.gif" width="100" height="60" border="0"
        onmouseover="mOver(this);" onmouseout="mOut(this);">
        <div id="text_2" class="hidden_txt">blabla - To</div></td>
</tr>
</table>

</body>
</html>
Avatar billede theselfimages Nybegynder
18. december 2002 - 21:30 #10
Thomas Brattli's virker til gengæld i NS4
Avatar billede olebole Juniormester
18. december 2002 - 21:40 #11
Hehe ... bare rolig, theselfimages. Jeg tager ikke imod points, så de tilfalder dig  ;o)

Det er helt korrekt - mit script fungerer ikke i antikviteter som IE1, 2, 3 og NS1, 2, 3, 4.
Til gengæld virker det i 'moderne' browsere, der opfylder de standarder, der har været gældende de sidste 4-5 år. Så er det spørgsmålet, om ens målsegment hører til i den antikviterede del af internetbrugere. Det kan kun én bedømme  :)

/mvh
Avatar billede theselfimages Nybegynder
18. december 2002 - 21:49 #12
Det var nu ikke for at klandre dig for noget. Just to inform.
Jeg syntes klart at dit script i sin enkelthed er bedre.

Og så har jeg en lille udfordring til dig, da du jo er blandt
de 10 mestre på Eksperten .. :) !
http://www.eksperten.dk/spm/296195

He! :) Undre mig bare at ingen endnu har svaret eller kommenteret på det.
Er spørgsmålet i sig selv en umulighed?
Avatar billede olebole Juniormester
18. december 2002 - 21:51 #13
Problemet med Brattli's script er, at 'ELEMENT.innerHTML' ikke er HTML-standard og derfor ikke virker i Opera, som er langt mere udbredt end NS4.
Man kan så undre sig over, hvorfor han dog skriver anden Opera-specifik kode, når browseren ikke kan læse script'et.
Men nu har hans scripts jo heller aldrig været kendt for at være synderlig velskrevne  :)

/mvh
Avatar billede olebole Juniormester
18. december 2002 - 22:16 #14
Hehe ... nææh, umuligt er der meget lidt der er. Det umulige tager bare lidt længere tid og koster derfor lidt mere  ;o)

Nu stinker IE til Mac desværre BIG time, så det kræver, man har en Mac stående (med _mange_ forskellige browserversioner). Det har jeg ikke for tiden - men forhåbentlig kommer den op igen først i det nye år  :)

/mvh
Avatar billede theselfimages Nybegynder
18. december 2002 - 22:40 #15
Hmmm... sikker på at IE 5.0 vil være nok.

I øvrigt har jeg bemærket at JakobA's script (øverst stående) bruger
setTimeout. Jeg ved at dette kan være et problem for IE 5.0 på MAC
Kan dette mon løse noget af problemet?

Eksemple:
setTimeout(enFunktion, 500);

... der sætter et timeout. Den traditionelle (men besværlige) metode er sådan her:

setTimeout("enFunktion()", 500);

... som åbenbart er den eneste, der virker på Mac. Så nu vil jeg begynde at bruge den! :)
Avatar billede olebole Juniormester
19. december 2002 - 00:34 #16
Ja, Mac er nu ikke det eneste sted, der er problemer med setTimeout's første argument og IE  ;o)

Men du kunne jo også se på scrollIntoView():
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/scrollintoview.asp

Her får du dog ikke den 'sexy' scroll med velocity, som Jakoba har lavet. Til gengæld får du en betydelig mindre kode at downloade. Jeg har dog ikke testet den på Mac.
/mvh
Avatar billede crasher Nybegynder
21. december 2002 - 14:50 #17
Hvordan bruger man den olebole? - som du sikkert har fundet ud af, er jeg ikke den skarpeste til hverken JS eller DHTML. ;)
Avatar billede olebole Juniormester
21. december 2002 - 15:45 #18
Det kommer helt an på den sammenhæng, det skal bruges i - men der er jo et fint eksempel i teksten på den side, jeg peger på.

/mvh
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