[javascript?] Uitzoomen van een div binnen een pagina

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een applicatie waarbij de gebruiker dynamisch een diagram op kan bouwen. Deze diagram wordt opgebouwd binnen een div en kan erg groot worden. Om de gebruiker toch goed overzicht te laten houden wil ik de mogelijkheid bieden om het diagram uit (en weer in) te zoomen.

Ik probeer nu onderstaande maar dat werkt niet. Er gebeurt hier helemaal niets. Wat ik uiteindelijk wil bereiken is dat bij iedere klik de inhoud van de div 10% uit zoomt (lijnen, text, afbeeldingen)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var fontsize = 1

function ButtonClickFont(i){
    if (i<3){
        i++;
    }else{
        i=0;
    }
    fontsize = i;
    ChangeFontSize(i)
}

function ChangeFontSize(i){
    var size = 0;
    var p = document.getElementById('eendiv');
    
    switch (i) {
        case 0: size = '0.9em'; break;
        case 1: size = '1.1em'; break;
        case 2: size = '1.5em'; break;
        case 3: size = '2.0em';
    }
    
    for(j=0;j<p.length;j++) {
        p[j].style.fontSize = size;
    }
}


Ben al een hele dag aan het googelen maar kom niet tot een goede oplossing. De google maps zoom is ongeveer wat ik wil bereiken maar dan dus op een div.

Iets waar ik ook mee wil experimenteren is een bird-eye view. Een klein dialoog op je scherm met een mini afdruk van je div. Zodra je binnen dit dialoog navigeert gaat de "parent" div mee. www.mind42.com heeft deze functionaliteit (moet je wel eerst voor inloggen). Zoeken op bird-eye (oid) in google geeft geen resultaat. Vermoedelijk gebruik ik de verkeerde zoekterm maar waar zou ik dan op moeten zoeken?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 26 augustus 2009 @ 14:20:
www.mind42.com heeft deze functionaliteit (moet je wel eerst voor inloggen).
offtopic:
Nee hoor :Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Inderdaad, niet aan gedacht... Mooie functionaliteit maar kan er op het web niets van vinden over hoe ze dat doen.... In diezelfde site zit trouwens ook de zoom functionaliteit zoals ik die zoek (met een slider). Erg mooi.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zoek nog even verder maar volgens mij moet ik met de in en uit zoom een aardig eind komen met:

code:
1
onclick="eendiv.style.zoom='50%'"


Moet wel zien dat ik dit toepas op alle individuele elementen binnen de div.

[ Voor 29% gewijzigd door Verwijderd op 26-08-2009 15:38 ]


Acties:
  • 0 Henk 'm!

  • evaarties
  • Registratie: April 2001
  • Laatst online: 14-08 19:45

evaarties

Powerball @ 12.582

als je gebruik maakt van prototype, dan zou je dit kunnen doen:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function zoom(zoomin)
{
  var minimum = 0.5;
  var dediv = $("dediv");
  var huidig = dediv.getStyle("font-size");
  //bepaal huidige zoom
  var zoom = huidig/1;
  if (zoomin)
  {
    var nieuwezoom = 1 + zoom + 0.1;
  }
  else
  {
    var nieuwezoom = 1 - zoom - 0.1;
  }

  // Minimum bereikt?
  if (nieuwezoom < minimum) {
    nieuwezoom = minimum;
  }
  dediv.setStyle("font-size", nieuwezoom + 'em')

}

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
evaarties schreef op woensdag 26 augustus 2009 @ 21:41:
als je gebruik maakt van prototype, dan zou je dit kunnen doen:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function zoom(zoomin)
{
  var minimum = 0.5;
  var dediv = $("dediv");
  var huidig = dediv.getStyle("font-size");
  //bepaal huidige zoom
  var zoom = huidig/1;
  if (zoomin)
  {
    var nieuwezoom = 1 + zoom + 0.1;
  }
  else
  {
    var nieuwezoom = 1 - zoom - 0.1;
  }

  // Minimum bereikt?
  if (nieuwezoom < minimum) {
    nieuwezoom = minimum;
  }
  dediv.setStyle("font-size", nieuwezoom + 'em')

}
Ik ga het bekijken. Maak zelf gebruik van Jquery, kijken of dat elkaar niet bijt.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

Uiteraard kan je deze code ook omkatten naar jquery...die kan namelijk ook de font-size aanpassen zonder al te veel moeite...

Het rekenwerk is namelijk hetzelfde...je moet alleen de manier van het aanpassen van de div wijzigen...

[ Voor 29% gewijzigd door Mike2k op 26-08-2009 22:58 ]

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Verwijderd

Topicstarter
Ik neem aan dat ik er alléén met het aanpassen van de font size niet ben? Images etc zullen ook moeten.

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

Google maps laad elke keer nieuwe plaatjes bij het in en uitzoomen...dat zul jij ook moeten doen.

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Wat Google maps doet is wel een beetje overkill denk ik.

Is het geen optie om hier iets als Flash (of als je er bekend mee bent iets als svg/canvas) te gebruiken? Dan kun je namelijk gewoon vectoren hanteren en is zoomen ineens een eitje.

Als alternatieve versie kun je dan altijd nog een afbeelding (of semantische boomstructuur) hanteren van hetzelfde schema.

[ Voor 20% gewijzigd door Bosmonster op 27-08-2009 09:56 ]


Verwijderd

Topicstarter
Bosmonster schreef op donderdag 27 augustus 2009 @ 09:55:
Wat Google maps doet is wel een beetje overkill denk ik.

Is het geen optie om hier iets als Flash (of als je er bekend mee bent iets als svg/canvas) te gebruiken? Dan kun je namelijk gewoon vectoren hanteren en is zoomen ineens een eitje.

Als alternatieve versie kun je dan altijd nog een afbeelding (of semantische boomstructuur) hanteren van hetzelfde schema.
Ik ben er niet echt bekend mee maar zal er eens induiken.

Acties:
  • 0 Henk 'm!

  • evaarties
  • Registratie: April 2001
  • Laatst online: 14-08 19:45

evaarties

Powerball @ 12.582

Wat je ook kunt doen, is in de img tags een width + height neerzetten in "em", die schalen dan ook mee.
Pagina: 1