| |
|
|
 |
größe von objekten ändern |
bauser
Elite Member
  

Dabei seit: 15.03.2004
Beiträge: 370
 |
|
| größe von objekten ändern |
 |
hallo zusammen!
ich möchte gerne dass sich die größe eines objektes auf mausklick ändert, aber nicht von 0 auf 100 in einem sprung sondern halt mit nem übergang.
also hab ich mal fogendes geschrieben:
| 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:
28:
|
<script type="text/javascript">
function growIt(id, w, h, s){
ele = this.document.getElementById(id);
iActW = ele.style.width;
iActH = ele.style.height;
iActH = parseInt(iActH.substr(0, iActH.length-2));
iActW = parseInt(iActW.substr(0, iActW.length-2));
if (iActW+s < w) iActW = iActW + s;
else iActW = w;
if (iActH+s < h) iActH = iActH+s;
else iActH = h;
ele.style.width = iActW+'px';
ele.style.height = iActH+'px';
}
function growBox(id, w, h, s){
wid = parseInt(this.document.getElementById(id).style.width.substr(0,this.document.getElementById(id).style.width.length))
;
while( wid < w){
alert ("WID: "+wid+" W: "+w);
window.setTimeout("growIt('"+id+"', "+w+", "+h+", "+s+")", 10);
wid = parseInt(this.document.getElementById(id).style.width.substr(0,this.document.getElementById(id).style.width.length
-2));
}
}
</script>
|
|
im mozilla klappt es, im internetexplorer nicht. nehm ich das alert aus der while schleife klappt es auch im mozilla nicht mehr. die art und weise ist unkritisierbar, ich will erst mal überhaupt was hinkriegen bevor ich das schön mach. also bitte keine kommentare wie "willste nich lieber anzahl der schritte statt schrittweite nehmen". danke.
http://bauser.dyndns.org/test.php -- ohne alert
http://bauser.dyndns.org/test2.php -- mit alert
__________________ I'm Tony Menthanar! You fuck wit me, you fuckin' wit da best!
|
|
13.09.2004 11:09 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von bauser am 13.09.2004 um 11:09 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Ebay
 |
|
|
|
Ephraim
Hobby Progger
  

Dabei seit: 23.03.2004
Beiträge: 826
Herkunft: coder-board.info
 |
|
Ich würde mal sagen du hast des -2 beim ersten parseint Aufruf,
in der growbox Funktion vergessen.
| php: |
1:
2:
|
function growBox(id, w, h, s){
wid = parseInt(this.document.getElementById(id).style.width.substr(0,this.document.getElementById(id).style.width.length)); |
|
also eigentlich ja so:
| php: |
1:
2:
|
function growBox(id, w, h, s){
wid = parseInt(this.document.getElementById(id).style.width.substr(0,this.document.getElementById(id).style.width.length - 2 )); |
|
Aber sicher ob des dein Fehler ist kann ich nicht sagen ... du bist ja leider
nicht online oder der dyndns Eintrag stimmt nicht mehr, insofern kann
ich jetzt leider die links auch nicht ausprobieren
...
kannst ja mal die test.php als Datei hier reinhengen ... hab ja nen eigenen
PHP Web Server zu Hause stehen, dann kann ich des da auch ma angucken
Ciao Ephraim
__________________
- Google
- SelfHTML's Quickbar Supertool (für HTML,CSS,Javascript Fragen)
- CSS 4 You (für CSS Fragen)
- CoderBoard's Search
- After that, with no success, post here
|
|
13.09.2004 13:00 |
|
|
bauser
Elite Member
  

Dabei seit: 15.03.2004
Beiträge: 370
Themenstarter
 |
|
nö ich bin einfach blöd.
http://bauser.dyndns.org/growing/test.php
http://bauser.dyndns.org/growing/test2.php
| 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:
|
function growIt(id, w, h, s){
ele = this.document.getElementById(id);
iActW = ele.style.width;
iActH = ele.style.height;
iActH = parseInt(iActH.substr(0, iActH.length-2));
iActW = parseInt(iActW.substr(0, iActW.length-2));
if (iActW+s < w) iActW = iActW + s;
else iActW = w;
if (iActH+s < h) iActH = iActH+s;
else iActH = h;
ele.style.width = iActW+'px';
ele.style.height = iActH+'px';
}
function growBox(id, w, h, s){
ele = this.document.getElementById(id);
wid = parseInt(ele.style.width.substr(0,ele.style.width.length-2));
while( wid < w){
alert ("WID: "+wid+" W: "+w);
window.setTimeout("growIt('"+id+"', "+w+", "+h+", "+s+")", 10);
wid = parseInt(ele.style.width.substr(0,ele.style.width.length-2));
}
}
|
|
so, klappt auch nich
__________________ I'm Tony Menthanar! You fuck wit me, you fuckin' wit da best!
|
|
13.09.2004 13:11 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von bauser am 13.09.2004 um 13:11 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Google
 |
|
|
|
Ephraim
Hobby Progger
  

Dabei seit: 23.03.2004
Beiträge: 826
Herkunft: coder-board.info
 |
|
Hey,
ich hab jetzt ma zwei Änderungen gemacht dann funtzt's bei mir
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
function growBox(id, w, h, s){
ele = document.getElementById(id);
wid = parseInt(ele.style.width.substr(0,ele.style.width.length-2));
i = 0;
while(wid < w){
i += 500;
window.setTimeout("growIt('"+id+"', "+w+", "+h+", "+s+")", i);
if (wid+s < w) wid = wid + s;
else wid = w;
}
} |
|
Erstmal die Weite solltest du nicht über das Style dir wieder holen,
da des ja erst später wenn der Timeout abgelaufen ist neu gesetzt wird.
Dadurch haust du ansonsten zig Timeout aufrufe raus ...
Zweitens hab ich jetzt für die verscheidenen Timeouts nen Counter eingeführt der immer pro While schleife um 500 hundertstel erhöht wird.
Da die While schleife fast keine Zeit braucht werden alle aufruf bei gleichem
Timeout fast gleichzeitig aufgerufen, dadurch das jetzt aber jeder weiter Timeout 500 Hunderstel später kommt geht des super schön
....
Du des Basic da drin ist nur so Spasses halber drin oder was
Getestet hab ich mit Opera 7.5 und IE 6.0.
Ciao Ephraim
__________________
- Google
- SelfHTML's Quickbar Supertool (für HTML,CSS,Javascript Fragen)
- CSS 4 You (für CSS Fragen)
- CoderBoard's Search
- After that, with no success, post here
|
|
13.09.2004 14:40 |
|
|
bauser
Elite Member
  

Dabei seit: 15.03.2004
Beiträge: 370
Themenstarter
 |
|
naja das ganze design der textbox sieht ja schon mehr so c64 style mäßig aus, da dachte ich mri ich nehm als standard text halt son basic quatsch, sieht doch super aus. so hab ich mal angefangen
das mit dem setTimeout hab ich glaub ich nich so ganz verstanden. ich dachte der wartet mit der ausführung die angegebene zeit, also auch mit der ausführung der while schleife.
zum abschluss noch mal n danke schön für deine, wie immer, schnelle und gute hilfe
__________________ I'm Tony Menthanar! You fuck wit me, you fuckin' wit da best!
|
|
13.09.2004 14:55 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von bauser am 13.09.2004 um 14:55 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Affilimatch
 |
|
|
|
Ephraim
Hobby Progger
  

Dabei seit: 23.03.2004
Beiträge: 826
Herkunft: coder-board.info
 |
|
|
13.09.2004 15:19 |
|
|
|
|
|
 |
|