Ik ben bezig met een projectje waar ik heel wat van de nieuwe technieken mee uitprobeer (html5, css3, ..) en had ik graag een banner rotatie gemaakt met css transitions/animation naar het idee van reclame rond een voetbal/basketbal-veld: om de x seconden scrolled er een nieuwe advertentie naar boven.
Ik heb 2 manieren gevonden om dit te doen, maar van beide ben ik nog niet helemaal tevreden. (stel dat we nu een rotatie maken van een div met 3 banners in.)
1) met animation en keyframes:
Voordeel: Werkt goed en zonder problemen terug naar eerste banner.
Nadeel:
* Eerste banner moet er dubbel in zitten. (op het einde nog eens voor mooie overgang)
* Niet cross-browser. Voorlopig enkel WebKit volgens mij. Andere browsers tonen enkel eerste banner.
Probleem: Geen manier gevonden om tussen 2 banners een wacht-tijd te hebben. Alles blijft nu continue doorscrollen.
2) met transitions:
+ nog wat JS code die dmv een timeout de top waarde aanpast. Hierdoor gaat om de zoveel tijd de banner scrollen zoals gewenst.
Voordeel:
* Cross-browser animatie van de rotatie
* Browser zonder animation support zien wel gewoon de volgende banner.
Nadeel: JS code nodig.
Probleem: Na de laatste banner komt top terug op '0px' waardoor je hem ziet terugscrollen naar de eerste banner.
Zoals je ziet hebben beide methoden hun voordelen en nadelen, maar elk hebben ook nog eens hun onvolmaaktheid waar ik tot op heden nog niet echt een goede oplossing voor gevonden heb. Op internet is hier ook nog niet veel te vinden gezien het nog in ontwikkeling zijn van meeste onderdelen.
Hebben jullie een idee hoe ik een van beide kan oplossen/toepassen. Of hoe ik het anders kan doen. Alle suggesties zijn welkom.
Ik heb 2 manieren gevonden om dit te doen, maar van beide ben ik nog niet helemaal tevreden. (stel dat we nu een rotatie maken van een div met 3 banners in.)
1) met animation en keyframes:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <style type="text/css"> @-webkit-keyframes adrotate-1 { 0% { top: 0px; } 33% { top: -60px; } 67% { top: -120px; } 100% { top: -180px; } } </style> <div id="bb-1" class="billboard" style="-webkit-animation: adrotate-1 10s linear 5s infinite;"> ... </div> |
Voordeel: Werkt goed en zonder problemen terug naar eerste banner.
Nadeel:
* Eerste banner moet er dubbel in zitten. (op het einde nog eens voor mooie overgang)
* Niet cross-browser. Voorlopig enkel WebKit volgens mij. Andere browsers tonen enkel eerste banner.
Probleem: Geen manier gevonden om tussen 2 banners een wacht-tijd te hebben. Alles blijft nu continue doorscrollen.
2) met transitions:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
| <style type="text/css"> div.billboard { position: relative; transition: top 1s linear; -webkit-transition: top 1s linear; -moz-transition: top 1s linear; -o-transition: top 1s linear; } </style> <div id="bb-1" class="billboard"> ... </div> |
+ nog wat JS code die dmv een timeout de top waarde aanpast. Hierdoor gaat om de zoveel tijd de banner scrollen zoals gewenst.
Voordeel:
* Cross-browser animatie van de rotatie
* Browser zonder animation support zien wel gewoon de volgende banner.
Nadeel: JS code nodig.
Probleem: Na de laatste banner komt top terug op '0px' waardoor je hem ziet terugscrollen naar de eerste banner.
Zoals je ziet hebben beide methoden hun voordelen en nadelen, maar elk hebben ook nog eens hun onvolmaaktheid waar ik tot op heden nog niet echt een goede oplossing voor gevonden heb. Op internet is hier ook nog niet veel te vinden gezien het nog in ontwikkeling zijn van meeste onderdelen.
Hebben jullie een idee hoe ik een van beide kan oplossen/toepassen. Of hoe ik het anders kan doen. Alle suggesties zijn welkom.