Mousover tekst over afbeelding

Status
Niet open voor verdere reacties.

jurre35

Gebruiker
Lid geworden
30 dec 2006
Berichten
147
Hallo,

Ik heb zelf een site over de rally sport,
www.rally-web.nl

Nu zag ik bij deze website: http://www.paradigit-elerally.nl/2009/
en dan bij het kopje: dit mag je niet missen
3 afbeeldingen, de tekst springt omhoog als je met je muis erover heen gaat.

een soort mouse over. ik wil het gebruiken om zo nieuws berichten te laten zien in mijn home. en als men op een foto klikt met daaronder een stukje tekst die vergroot bij mouse over dat je dan naar het nieuws bericht gaat

zou iemand mij kunnen vertellen hoe je dit maakt?
ik gebruik zelf, dreamweaver 8 en CS3

ik hoop dat iemand kan helpen!!

heel erg bedankt

groeten Jurre
 
Als je een beetje into javascript bent, heb ik hier een leuk concept: [ http://bin.void-studios.com/helpmij/schermpie.html ]. Het idee is wat strakker dan dat wat Peter gaf (vind ik :p), want deze zet de text ook daadwerkelijk 'op' het goede plaatje.

Natuurlijk moet er nog veel aan gebeuren, maargoed. Het is maar een idee.



:thumb:


[edit] zelf getest in FF3, rest weet ik niet[/edit]
 
Laatst bewerkt:
@ Peter:

Leuk script, maar als ik het in FF test werkt het niet helemaal naar behoren. Als je namelijk 'mouseovert' (ter hoogte van de tekst), dan verschijnt de tekst, maar FF ziet dan schijnbaar dat je met je muis op de tekst staat, de tekst verdwijnt dan weer, dan sta je dus weer met je muis op de afbeelding, afijn je snapt denk ik wel wat ik bedoel.

Resultaat: de tekst knippert.

EDIT: in Vegras' script ook.
 
Laatst bewerkt:
jQuery

Als je een beetje Javascript en Engels kent, en dan ook nog het jQuery framework een beetje kent (:love:) heb je hier een perfecte oplossing: http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-day-8/.

Het een en ander moet aangepast worden, dan bereik je precies wat jij wilt (ik wil je graag helpen maar dat kan nu niet, later deze week kan ik je weer helpen!). Zonder de bovenstaande fout. Mocht je er geen snars van snappen maar het wel leuk vinden: les 1 begint hier. (Het zijn leuke lessen!)

Het effect wat je aangaf is ook met zo'n library/framework gedaan, alleen dan Mootools. Net iets anders.

Grt,
Jelly
 
BEDANKT!!

allemaal super bedankt voor jullie hulp, ik ga er morgen even naar kijken en zien of ik er wat van snap ;)

als ik nog vragen heb of hulp nodig ben dan horen jullie het van me

super bedankt

Heeft niet iemand toevallig gewoon een scriptje in html ofzo wat zeer eenvoudig is om met dreamweaver te gebruiken?

gr Jurre
 
Zeg het maar als je het niet snapt. ;)
Ik kan je een script geven, maar momenteel moet ik leren voor examens (ook belangrijk :rolleyes:) dus dat kan morgen/woensdag pas.
 
Zeg het maar als je het niet snapt. ;)
Ik kan je een script geven, maar momenteel moet ik leren voor examens (ook belangrijk :rolleyes:) dus dat kan morgen/woensdag pas.

oke bedankt!!

ja examens zijn natuurlijk ook wel een beetje belangrijk :P
ik hoor je tips enzo graag!

als er nog iemand is die mij kan helpen, graag

groeten jurre
www.rally-web.nl
 
Ik heb er nu een paar aangepast, alleen wat jammer is dat ik tot nu toe nog niet het gewenste resultaat heb.

de link die ik gaf boven aan deze pagina, zo wil ik het graag hebben, dat je echt een balk met tekst krijgt die omhoog gaat bij mouseover en omlaag bij mouseout.

is er iemand die dit voor mij kan regelen? is er ook niks uit de bron te halen van die page

bedankt allemaal

groeten
 
Oké, vandaag had ik tijd. ;)

Kijk eens op deze pagina, ik geloof dat het zo is hoe je het wil: http://jelmerdemaat.nl/effect.htm.

Begrijp wel dat het een heel specifiek stukje code is, je kunt het niet zomaar op een webpagina gooien, wat dingetjes veranderen en verwachten dat het werkt. Bepaalde dingen moeten precies uitkomen. Je zult ook vast niet alles meteen begrijpen uit de broncode, daarom wat uitleg (ik probeer het kort):

Het is geen PHP, dat gebruik ik even voor de kleurtjes.
PHP:
//Voor de css (hou de HTML ernaast):

	#nieuws{
	width: 960px;
	}
//De breedte van de het hele nieuws-div is gelijk aan die van alle plaatjes
//bij elkaar + eventuele margin of padding (nu dus 3 * (300 + 20)).

	.plaatje {
	width: 300px;
	height: 200px;
	position: relative;
	overflow: hidden;
	float: left;
	margin: 0 10px;
	}
//Elk van de drie nieuwsberichten staan in een aparte div, een vastgestelde
//grootte is belangrijk, evenals de positie (relative) en de overflow (hidden).

	.plaatje img {
	position: absolute;
	top: 0; left: 0;
	z-index: -99;
	}
//De plaatjes in elk van de drie berichtjes moeten deze positie en een heel
//lage z-index hebben, dan weet je zeker dat ze helemaal linksboven onder
//de tekst komen.
	
	.plaatje .tekst{
	color: white;
	width: 100%;
	height: 110px;
	overflow: hidden;
	position: absolute;
	top: 170px;
	background: black;
	}
//De tekst moet je zelf nog wel stylen, alleen de positie is weer belangrijk,
//want de top geeft aan hoever de tekst naar beneden moet schuiven als
//er niets gebeurt. Hoogte en kleur en achtergrond enzo mag je zelf verzinnen.
	
	.plaatje .tekst h3{
	font-size: 19px;
	margin: 0 0 5px 0;
	padding: 2px 2px 5px 2px;
	border-bottom: 1px solid white;
	}

	.plaatje .tekst p{
	margin: 2px; padding: 0;
	}
//Hier kan je de paragraph en de titel nog stylen, ik heb wat margin en padding
//en een lijn onder de titel.

Ik hoop dat je al wat van CSS wist, anders is dit misschien hocus pocus voor je! Je wilt misschien de achtergrond nog transparant? Dat is nog wel ingewikkelder. Als je namelijk opacity: 0.5 zou doen, wordt de tekst ook transparant. Je kunt dus een transparante achtergrond aan de div.tekst geven, maar Internet Explorer 6 ondersteunt dat niet, moet je daarvoor weer een hack zoeken... enz. :)
(Overigens weet ik niet hoeveel mensen met IE6 je website bezoeken, maar ik zou zeggen: pech voor hen dan maar, IE6 is zó oud.)
Je kunt ook eerst een andere div toevoegen, daarvan transparante achtergrond zetten, en dan pas div.tekst neerzetten, maar dat wordt ook wel ingewikkeld voor nu.

jQuery Javascript:
HTML:
$(function(){
        $('.plaatje').hover(function() {
            $(this).children('.tekst').stop().animate({ "top" : '90px'}, 400);   
        }, function() {
            $(this).children('.tekst').stop().animate({ "top" : '170px'}, 400);       
        });
});
Per regel zegt dit: (1) als het document klaar is met laden (2) en als div.plaatje gehoverd wordt ("mouseover" dus) dan (3) neem je zijn div.tekst en animeer hem naar boven, tot 90px van de top af. (4) Als je muis er weer af is ("mouseout" dus) dan (5) zet je hem weer terug naar 170px van de top af naar beneden. Regel 6 en 7 is afsluiting, logisch.

Dit is gemaakt met jQuery, die ene javascript library, omdat dit veel minder werk is, en het is vrij simpel zo. Om dit te laten werken moet je dus wel jQuery in je HTML toevoegen, zoals dat in de head staat:
PHP:
	<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

Oh, en je kunt in je HTML zelf natuurlijk een link toevoegen in de tekst.
Zo, begrijp je het zo een beetje? :o Als het niet zo is: roep maar meteen!

Groeten,
Jelly
 

Bijlagen

Laatst bewerkt:
Oké, vandaag had ik tijd. ;)

Kijk eens op deze pagina, ik geloof dat het zo is hoe je het wil: http://jelmerdemaat.nl/effect.htm.

Begrijp wel dat het een heel specifiek stukje code is, je kunt het niet zomaar op een webpagina gooien, wat dingetjes veranderen en verwachten dat het werkt. Bepaalde dingen moeten precies uitkomen. Je zult ook vast niet alles meteen begrijpen uit de broncode, daarom wat uitleg (ik probeer het kort):

Het is geen PHP, dat gebruik ik even voor de kleurtjes.
PHP:
//Voor de css (hou de HTML ernaast):

	#nieuws{
	width: 960px;
	}
//De breedte van de het hele nieuws-div is gelijk aan die van alle plaatjes
//bij elkaar + eventuele margin of padding (nu dus 3 * (300 + 20)).

	.plaatje {
	width: 300px;
	height: 200px;
	position: relative;
	overflow: hidden;
	float: left;
	margin: 0 10px;
	}
//Elk van de drie nieuwsberichten staan in een aparte div, een vastgestelde
//grootte is belangrijk, evenals de positie (relative) en de overflow (hidden).

	.plaatje img {
	position: absolute;
	top: 0; left: 0;
	z-index: -99;
	}
//De plaatjes in elk van de drie berichtjes moeten deze positie en een heel
//lage z-index hebben, dan weet je zeker dat ze helemaal linksboven onder
//de tekst komen.
	
	.plaatje .tekst{
	color: white;
	width: 100%;
	height: 110px;
	overflow: hidden;
	position: absolute;
	top: 170px;
	background: black;
	}
//De tekst moet je zelf nog wel stylen, alleen de positie is weer belangrijk,
//want de top geeft aan hoever de tekst naar beneden moet schuiven als
//er niets gebeurt. Hoogte en kleur en achtergrond enzo mag je zelf verzinnen.
	
	.plaatje .tekst h3{
	font-size: 19px;
	margin: 0 0 5px 0;
	padding: 2px 2px 5px 2px;
	border-bottom: 1px solid white;
	}

	.plaatje .tekst p{
	margin: 2px; padding: 0;
	}
//Hier kan je de paragraph en de titel nog stylen, ik heb wat margin en padding
//en een lijn onder de titel.

Ik hoop dat je al wat van CSS wist, anders is dit misschien hocus pocus voor je! Je wilt misschien de achtergrond nog transparant? Dat is nog wel ingewikkelder. Als je namelijk opacity: 0.5 zou doen, wordt de tekst ook transparant. Je kunt dus een transparante achtergrond aan de div.tekst geven, maar Internet Explorer 6 ondersteunt dat niet, moet je daarvoor weer een hack zoeken... enz. :)
(Overigens weet ik niet hoeveel mensen met IE6 je website bezoeken, maar ik zou zeggen: pech voor hen dan maar, IE6 is zó oud.)
Je kunt ook eerst een andere div toevoegen, daarvan transparante achtergrond zetten, en dan pas div.tekst neerzetten, maar dat wordt ook wel ingewikkeld voor nu.

jQuery Javascript:
HTML:
$(function(){
        $('.plaatje').hover(function() {
            $(this).children('.tekst').stop().animate({ "top" : '90px'}, 400);   
        }, function() {
            $(this).children('.tekst').stop().animate({ "top" : '170px'}, 400);       
        });
});
Per regel zegt dit: (1) als het document klaar is met laden (2) en als div.plaatje gehoverd wordt ("mouseover" dus) dan (3) neem je zijn div.tekst en animeer hem naar boven, tot 90px van de top af. (4) Als je muis er weer af is ("mouseout" dus) dan (5) zet je hem weer terug naar 170px van de top af naar beneden. Regel 6 en 7 is afsluiting, logisch.

Dit is gemaakt met jQuery, die ene javascript library, omdat dit veel minder werk is, en het is vrij simpel zo. Om dit te laten werken moet je dus wel jQuery in je HTML toevoegen, zoals dat in de head staat:
PHP:
	<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

Oh, en je kunt in je HTML zelf natuurlijk een link toevoegen in de tekst.
Zo, begrijp je het zo een beetje? :o Als het niet zo is: roep maar meteen!

Groeten,
Jelly




Goeiendag he jelly

dat is nog aardig wat werk, ik had gedacht dat het niet zoveel werk was....

maar goed ik ben er een klein beetje mee bekend dus ik ga het gewoon uitproberen.
Welke codes moet ik nu invoegen en hoe zet ik de css erop?

groeten !

bedankt he!!
 
super bedankt jelly,

ik heb hem nu zo in een leeg page

http://www.rallyweb.woelmuis.nl/test1.html

Ik kwam er niet helemaal uit met al die losse codes. Ik heb de bron code
van de test pagina van jou genomen, die gekpoieerd en toegevoegd in dreamweaver. die plakt hem zelf in elkaar.

kan nu ook alles veranderen alleen waar ik nu mee zit is al volgt:

ik heb een nieuws pagina, nu wil ik in een tabel aan de linker kant 1 van die slidefoto's zetten. hoe ga ik dit doen???

bedankt!!

groeten
 
Welke codes moet ik nu invoegen en hoe zet ik de css erop?
Je moet beide jQuery codes (die voor het effect en de link naar jQuery zelf) invoegen, op de manier die in mijn vorige post stond. Je kunt een apart bestand maken, iets van effect.js of zo (als het maar *.js is), van de effect-code, of je kunt hem gewoon laten staan in de head. Dat is ook goed. :)
De css kan je knippen, in een nieuw bestandje plakken en opslaan als bijvoorbeeld csseffect.css. Dan importeer je hem naar je document met
<link href="link/naar/csseffect.css" rel="stylesheet" type="text/css"/>
Ook je de css kan je eventueel gewoon laten staan hoor, dan werkt het ook. Heb je wel een veel langere HTML, dus het is kiezen.
ik heb een nieuws pagina, nu wil ik in een tabel aan de linker kant 1 van die slidefoto's zetten. hoe ga ik dit doen???
Je kunt van de drie div.plaatje die er zijn er gewoon twee weghalen, dan werkt de code nog steeds. Alleen is het dan handig als je de div die om alles heen zit (#nieuws) ook aanpast aan de nieuwe breedte. Als je mijn voorbeeld gebruikt zou dat 320px moeten zijn.

Je kunt trouwens ook gewoon kleinere/grotere foto's gebruiken als je wilt, dan moet je wel div.plaatje aanpassen aan de afmetingen van de foto, en in de Javascript natuurlijk aangeven hoever alles moet bewegen. :thumb:

Groeten (en graag gedaan!)
Jelly
 
Je moet beide jQuery codes (die voor het effect en de link naar jQuery zelf) invoegen, op de manier die in mijn vorige post stond. Je kunt een apart bestand maken, iets van effect.js of zo (als het maar *.js is), van de effect-code, of je kunt hem gewoon laten staan in de head. Dat is ook goed. :)
De css kan je knippen, in een nieuw bestandje plakken en opslaan als bijvoorbeeld csseffect.css. Dan importeer je hem naar je document met
<link href="link/naar/csseffect.css" rel="stylesheet" type="text/css"/>
Ook je de css kan je eventueel gewoon laten staan hoor, dan werkt het ook. Heb je wel een veel langere HTML, dus het is kiezen.

Je kunt van de drie div.plaatje die er zijn er gewoon twee weghalen, dan werkt de code nog steeds. Alleen is het dan handig als je de div die om alles heen zit (#nieuws) ook aanpast aan de nieuwe breedte. Als je mijn voorbeeld gebruikt zou dat 320px moeten zijn.

Je kunt trouwens ook gewoon kleinere/grotere foto's gebruiken als je wilt, dan moet je wel div.plaatje aanpassen aan de afmetingen van de foto, en in de Javascript natuurlijk aangeven hoever alles moet bewegen. :thumb:

Groeten (en graag gedaan!)
Jelly



hee jelly,

oke bedankt, ik had al door dat ik ik er 2 weg kon halen, alleen het positieneren van de foto in mijn pagina is erg lastig.
ik werk er met tabels enzo dat is heel erg *****....

maar ik ga het zo proberen eerst even langs school ;)

bedankt!

je hoort nog nog van me
 
Tabellen zijn daarom ook absoluut "verboden" in ontwerpen van websites! :p

Succes ermee, roep maar als je nog problemen hebt.
Jelly
 
Tabellen zijn daarom ook absoluut "verboden" in ontwerpen van websites! :p

Succes ermee, roep maar als je nog problemen hebt.
Jelly


ja ik weet het :( maar hoe kun je het beste dan een pagina opbouwen
zonder de tabellen?

ik heb de site al gebouwd in tabbelen omdat ik daar ooit mee ben begonnen, hoe zou ik dit kunnen veranderen jelly?

zou je mij ermee willen helpen?
welke tip geef jij om toch de slide foto's van jou te gebruiken

groeten Jurre
 
Zonder de tabellen: met CSS en het gebruik van div's. Door alles slim/goed de plaatsen en afmeten heb je helemaal geen tabellen nodig. Om je website te veranderen van tabellen naar "normaal" CSS is wel een werkje, waarschijnlijk komt het neer op alles opnieuw doen... :o

Ik wil je er wel bij helpen. Ik zou je wel aanraden om zelf wat tutorials enzo te volgen, daar kan je veel van leren. Bijvoorbeeld op w3schools (Engels) of handleidinghtml (Nederlands). En dan vooral de CSS gedeeltes.

Het effect kan je ook in je huidige layout gebruiken, als je aangeeft waar het moet komen (welke pagina, welke plek) kan ik je beter helpen. :thumb:

Jelly
 
Zonder de tabellen: met CSS en het gebruik van div's. Door alles slim/goed de plaatsen en afmeten heb je helemaal geen tabellen nodig. Om je website te veranderen van tabellen naar "normaal" CSS is wel een werkje, waarschijnlijk komt het neer op alles opnieuw doen... :o

Ik wil je er wel bij helpen. Ik zou je wel aanraden om zelf wat tutorials enzo te volgen, daar kan je veel van leren. Bijvoorbeeld op w3schools (Engels) of handleidinghtml (Nederlands). En dan vooral de CSS gedeeltes.

Het effect kan je ook in je huidige layout gebruiken, als je aangeeft waar het moet komen (welke pagina, welke plek) kan ik je beter helpen. :thumb:

Jelly


hee, ik ben nu een tijdje bezig om een nieuwe website te bouwen, nu wil ik die rollover in een div zetten alleen krijg dit niet goed voor elkaar.
en als ik die roll over wil aanpassen hoe kan ik dit het beste doen.
wil hem graag max 200 breed hebben. met de foto gecentreerd

zou je mij kunnen helpen?

bedankt!!
gr jurre
 
Natuurlijk!

Heb je de website waar je aan werkt online? Dat is handig, kunnen we meekijken.
Je wilt één plaatje? Dan zet je dus dit:
HTML:
<div id="nieuws"> 
	    <div class="plaatje"> 
	    <img src="slidenews/tumbtest1.jpg" alt="Rallyfoto" width="300" height="200" /> 
			<div class="tekst"> 
				<h3>Foto's Sezoens Rally 09</h3> 
				<p>Tekst over rally. Consectetur adipiscing elit.
				Praesent lorem urna, accumsan consectetur interdum vel.</p> 
			</div> 
	  </div> 
</div>
in een div. De css en javascript enzo moet dan nog kloppen. Als je iets aanpast hoef je alleen het stukje css aan te passen, dus andere breedte/hoogte/kleur/...

Jelly
 
Natuurlijk!

Heb je de website waar je aan werkt online? Dat is handig, kunnen we meekijken.
Je wilt één plaatje? Dan zet je dus dit:
HTML:
<div id="nieuws"> 
	    <div class="plaatje"> 
	    <img src="slidenews/tumbtest1.jpg" alt="Rallyfoto" width="300" height="200" /> 
			<div class="tekst"> 
				<h3>Foto's Sezoens Rally 09</h3> 
				<p>Tekst over rally. Consectetur adipiscing elit.
				Praesent lorem urna, accumsan consectetur interdum vel.</p> 
			</div> 
	  </div> 
</div>
in een div. De css en javascript enzo moet dan nog kloppen. Als je iets aanpast hoef je alleen het stukje css aan te passen, dus andere breedte/hoogte/kleur/...

Jelly




hee,

super bedankt!!
ja ik wil 1 plaatje hebben maar wel met een tumb van 144x95 ongeveer. als ik de lengte enzo aanpas dan verloopt het schijven niet goed meer.
de index pagina van tot nu toe nieuwe site laat maar zeggen die staat online onder:

http://rallyweb.woelmuis.nl/Rally-web-Doc/index.html
er staat daar een linkje rechts, naar test page,
hier heb ik hem staan

hij moet dus kleiner worden,

super bedankt dat je me wilt helpen!!

groeten jurre
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan