[CSS] Diagonale DIV

Status
Niet open voor verdere reacties.

axisrules

Gebruiker
Lid geworden
17 jun 2008
Berichten
68
Hallo allemaal,

Ik wil graag een homepage maken met een keuze tussen 2 sites.
Ik wil dat wanneer je over een plaatje komt, dat het plaatje lichter wordt, ik doe dit met een 2e plaatje en rollover.

Ik heb 2 divs over elkaar en 4 plaatjes in de divs gezet in gif formaat.

Ik heb het eerst getest. Het is een beetje moeilijk uitleggen maar ik heb een test gemaakt op: http://jasmineatlas.nl/test/

Het probleem is dat wanneer mijn muis over het linkerplaatje gaat, de rechter veranderd. Rood zou eigenlijk moeten veranderen in geel.
Ze moeten elk ook doorlinken naar een ander site.

Ik hoop dat jullie mij kunnen helpen.
 
De website doet het niet, en ik snap er eerlijk gezegd niet veel van. niks eigenlijk..
 
Ja, probleem duidelijk! ;)
Links in html (en achtergrond-wisseling bij een hover) zijn normaal gesproken altijd rechthoekjes. Maar de rechthoek om de ene driehoek is dezelfde rechthoek als om de andere driehoek. :(
Dus, zoals je testpagina laat zien: op deze manier kan het nooit lukken.

Gelukkig is er nog wel een andere manier. Als je één image neemt met beide driehoeken er in, dan kan je een "image-map" maken. D.w.z. een willekeurige vorm binnen het img gebruiken om daarvan een link te maken.
Browsers kunnen echter niet goed van achtergrondkleur verschieten, als je over zo'n map-area heen hovert met de muis.
Maar met een beetje javascript moet dat weer wel kunnen. :)

Ik denk dat je wel inspiratie kunt halen uit deze reactie bij een ander topic:
Met vriendelijke groet,
CSShunter
 
Ja, probleem duidelijk! ;)
Links in html (en achtergrond-wisseling bij een hover) zijn normaal gesproken altijd rechthoekjes. Maar de rechthoek om de ene driehoek is dezelfde rechthoek als om de andere driehoek. :(
Dus, zoals je testpagina laat zien: op deze manier kan het nooit lukken.

Gelukkig is er nog wel een andere manier. Als je één image neemt met beide driehoeken er in, dan kan je een "image-map" maken. D.w.z. een willekeurige vorm binnen het img gebruiken om daarvan een link te maken.
Browsers kunnen echter niet goed van achtergrondkleur verschieten, als je over zo'n map-area heen hovert met de muis.
Maar met een beetje javascript moet dat weer wel kunnen. :)

Ik denk dat je wel inspiratie kunt halen uit deze reactie bij een ander topic:
Met vriendelijke groet,
CSShunter

Bedankt voor je reactie!
Een uitgebreide uitleg, heb ik in de weekend tenminste wat te doen :p
Resultaat is wel heel erg mooi.

Ik ga er aan werken en hopelijk komt alles in orde!
 
2 vraagjes:

Ik ga de homepage in Joomla.
is er een component waardoor mijn probleem versimpeld kan worden?

Reden waarom ik de hoofdpagina is Joomla ga maken is omdat de statische website niet kan worden gevonden in Google. Ik heb gehoord dat Joomla erg gemakkelijk was met SEO. Toch vraag ik me af waarom mijn site niet word gevonden? Ik heb ook hulp gehad van de site metatags.nl

Axis.

EDIT: of zal ik hiervoor flash gebruiken? zal ik een ander topic openen in de flash gedeelte?
 
Laatst bewerkt:
Hoi axisrules,
Ik ga de homepage in Joomla maken; is er een component waardoor mijn probleem versimpeld kan worden?
Het probleem is simpel genoeg. ;) - Maar geen flauw idee (als niet Joomla'er) of er via een Joomla module een makkelijke oplossing is.

Als je in Joomla in code-weergave van de betreffende pagina kan komen, zou het genoeg moeten zijn. Want ziehier:

Het image-map principe:
Code:
<div id="diagonalo">
	<map name="img-map">
		<area href="links.htm"  title="links"  alt="" shape="poly" 
			coords="0, 0, 600, 0, 0, 300">
		<area href="rechts.htm" title="rechts" alt="" shape="poly" 
			coords="600, 300, 600, 0, 0, 300">
	</map>
	<img src="images/diagonaal.png" width="600" height="300" alt="" 
		usemap="#img-map">
</div>
Het plaatje staat in z'n geheel op de voorgrond, met image-mapping kan je gedeeltes gebruiken voor een link. Aan deze links kan je "tooltips" hangen via de title="..." eigenschap van de <area>'s. Die zie je dan bij een hover.
Maar veranderen van kleur doen de driehoeken op deze manier niet:
Daarvoor kan een verschuivende achtergrond-afbeelding gebruikt worden. Maar die kan niet rechtstreeks aan een <area> verbonden worden. daarvoor is, zoals gezegd, wat javascript nodig.
Als voorbereiding maken we een afbeelding met de 3 toestanden naast elkaar:

diagonaal-hover-mini.png

De truc is, om de afbeelding in de html te vervangen door een transparante afbeelding. Anders is er namelijk niets om de image-map aan vast te maken. Vervolgens gebruiken we onze driehoeken als achtergrond onder dat transparantje.
css:
Code:
#diagonalo img {
	border: 0;
	background: url(images/diagonaal-hover.png);
	}
html:
Code:
<div id="diagonalo">
	<map name="img-map">
		<area href="links.htm"  title="links"  alt="" shape="poly" 
			coords="0, 0, 600, 0, 0, 300">
		<area href="rechts.htm" title="rechts" alt="" shape="poly" 
			coords="600, 300, 600, 0, 0, 300">
	</map>
	<img src="images/transparant.gif" width="600" height="300" alt="" 
		usemap="#img-map">
</div>
Dat geeft deze:
Op het oog exact hetzelfde als het eerste voorbeeld. Maar ook geen kleurwissel bij een hover te zien. Daar gaan we nu verandering in brengen.
  • Javascript-principe: "als een hover over de linker area, dan achtergrond van het transparante img één breedte naar links schuiven". En weer terug, als er geen hover is. Voor het rechter gebied hetzelfde.
Javascript-uitvoering:
[JS]var hoverBg = document.getElementById('diagonalo').getElementsByTagName('img')[0];
function mapHover(obj){
if (obj == 'links'){
hoverBg.style.backgroundPosition = '-600px 0';
}
if (obj == 'rechts'){
hoverBg.style.backgroundPosition = '-1200px 0';
}
}
function mapOut(){
hoverBg.style.backgroundPosition = '0 0';
}[/JS]
Deze functies opknopen in de html...:
Code:
<div id="diagonalo">
	<map name="img-map">
		<area href="links.htm"  title="links"  alt="" shape="poly" 
			coords="0, 0, 600, 0, 0, 300"
			onmouseover="mapHover('links')" onmouseout="mapOut()"
			onfocus="mapHover('links')" onblur="mapOut()">
		<area href="rechts.htm" title="rechts" alt="" shape="poly" 
			coords="600, 300, 600, 0, 0, 300"
			onmouseover="mapHover('rechts')" onmouseout="mapOut()"
			onfocus="mapHover('rechts')" onblur="mapOut()">
	</map>
	<img src="images/transparant.gif" width="600" height="300" alt="" 
		usemap="#img-map">
</div>
... en nu stuiteren de gekleurde driehoeken voor je ogen:
Mocht iemand javascript uit hebben staan, dan is er geen man of vrouw overboord: de driehoeken hebben nog steeds hun link en hun tooltip, alleen de kleurwissel is er niet.


==================
Reden waarom ik de hoofdpagina in Joomla ga maken is omdat de statische website niet kan worden gevonden in Google. Ik heb gehoord dat Joomla erg gemakkelijk was met SEO. Toch vraag ik me af waarom mijn site niet word gevonden?
Dat is een heel andere vraag, en ik weet niet of Joomla daar een antwoord op is.
Maar heb je een link naar de huidige niet-door-Google-te-vinden pagina?
En: op welke trefwoorden kan Google 'm niet vinden?

Met vriendelijke groet,
CSShunter

[edit]Daar verschijnt je <edit>! :)
Ik ben bang dat Flash de site eerder ontoegankelijker dan beter maakt voor mensen en Google. Maar met goede aanvullende alternatieven zou het wel moeten kunnen, geloof ik. Zelf doe ik het nooit met Flash.[/edit]
 
Laatst bewerkt:
Ik ben bang dat Flash de site eerder ontoegankelijker dan beter maakt voor mensen en Google. Maar met goede aanvullende alternatieven zou het wel moeten kunnen, geloof ik. Zelf doe ik het nooit met Flash.[/edit]

Wow, wat een uitleg! bedankt dat je zoveel tijd in een tut stopt!
Ik zie in hoeveel je kan met javascript. Ik heb nog wat gegoogled en heb weer wat ideeen gekregen.

De keuze op de hoofdpagina is aan de linkerkant een restaurant, en aan de rechterkant ene snackbar. De normale foto is het bedrijf in de nacht. Als je over een plaatje hovert, dan veranderd die in dag met een fade effect. als je met je muis eraf gaat, dan fade die van dag weer naar nacht.

Ik heb een tutorial gevonden op:http://jqueryfordesigners.com/image-cross-fade-transition/

met een mooie voorbeeld op: http://jqueryfordesigners.com/demo/fade-method1.html
en http://jqueryfordesigners.com/demo/fade-method2.html

alleen komt er weer een oud probleem terug, die divs zijn nog steeds rechthoekig.
En het werkt met Jquery waar ik echt niks van snap.

Is jouw tutorial te combineren met de andere tutorial (fade effectjes).

dus een driehoekig plaatje met fade effecten?

Bedankt voor de tijd dat je erin stopt!

Axis.
 
Laatst bewerkt:
Tja, die JQuery...
Dat is een gansche bibliotheek van 18kB, 12 dichtbedrukte velletjes A4, en dan nog 75 regels inline javascript (voila ici :eek:!) om zo'n voorbeeld aan de praat te krijgen...
  • Overigens, die "Single Image Technique" was ik wel heel nieuwsgierig naar; maar dat blijkt toch een "Two Image Technique" (het tweede img zit in de css!). :shocked:

Is jouw tutorial te combineren met de andere tutorial (fade effectjes). Dus een driehoekig plaatje met fade effecten?
Ja, dat lijkt me wel.
Tenminste, voor mij met een leergang JQuery erbij :rolleyes: (ik ben ook niet bedreven in het JQuery toepassen), want de 2 scripts moeten wel mooi op elkaar aansluiten.

Maar als je genoegen zou kunnen nemen met een eenvoudiger fading-scriptje, dat ik voor de gelegenheid wel kan lenen, dan wordt het veel makkelijker:
Waarschijnlijk zal dan de "ruststand"-foto er als background in moeten, en het transparante img op de voorgrond on-the-fly vervangen moeten worden door een fadende daglicht-foto van het ene of het andere driehoekje. Maar dat zou met wat alternatief javascript wel te regelen moeten zijn.

Met vriendelijke groet,
CSShunter

PS: leuk idee, die dag & nacht!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan