Moderator |
|
Hm, hier is dus de redenatie dat alles <= 1024 x ... mobiel is? Wellicht is een betere manier of men van doen heeft met een mobiel apparaat het controleren van de USER_AGENT of het controleren van andere eigenschappen. Zoveel wordt hier ook voorgesteld, maar de WIKI-pagina waar naar verwezen wordt is verwijderd haha.
Hier zijn ook een aantal libraries voor, ik wilde WURFL voorstellen, maar blijkbaar moet je betalen voor commercieel gebruik van deze dienst ofzo... Wellicht is het de moeite om nog wat verder te snuffelen op de pagina van bovenstaande link, maar dan zul je ook zelf het e.e.a. moeten programmeren of op zijn minst moeten configureren om zaken aan de praat te krijgen.
Ik zou de user agent meer als leidraad nemen, als daar nog een gratis/makkelijk product voor is.
Gaan voor "responsive design" zoals lolll voorstelt komt toch min of meer op hetzelfde neer denk ik, in zoverre dat je nog steeds het e.e.a. moet detecteren om vervolgens te besluiten hoe je wat weergeeft? Het verschil is dan mogelijk wel dat je geen expliciet onderscheid maakt tussen mobiel/desktop maar kijkt naar andere eigenschappen (zoals (enkel) resolutie). In dat opzicht is bovenstaande code al "responsive"? .
---
Wat er in feite in de bovenstaande code gebeurd is het volgende: var res krijgt in de regels 3 t/m 9 een cijfer tussen 0 en 7. 0 wil zeggen: niet-gangbare resolutie, 1 wil zeggen: horizontale resolutie = 640, 2 wil zeggen: horizontale resolutie = 800 etc..
Als je een niet-gangbare hor. resolutie hebt (regel 19) --> website
Als de hor. resolutie 640, 800 of 1024 is --> mobiel
Anders (hor. res 1152, 1280, 1366, 1600 (of groter)) --> website
Maar regel 19 voldoet mogelijk nooit omdat op regel 11 res de waarde 1 krijgt (als deze eerdere 0 was, m.a.w. als er geen geschikte resolutie werd gevonden)? Vage code.
En dus ook die "of groter" hierboven gaat niet op. Voor regel 11 is deze dus mogelijk 0, en daarna dus altijd 1?
Als ik het goed begrijp, zou een ingekorte versie zoiets zijn:
var mobile_resolutions = [640, 800, 1024];
if (mobile_resolutions.indexOf(screen.width) >= 0) {
window.location = 'mobiel/index.php';
} else {
window.location = 'website/index.php';
}
var mobile_resolutions = [640, 800, 1024]; if (mobile_resolutions.indexOf(screen.width) >= 0) { window.location = 'mobiel/index.php'; } else { window.location = 'website/index.php'; }
Dit doet in ieder geval functioneel hetzelfde, en waarschijnlijk beter (in feite heb ik regel 11 eruit gemikt). |