javascript style aanpassen
Emonk - 22/12/2010 11:08
Lid
Hallo allemaal,
Met de volgende code:
<div id="divje" style="background-color: #000;color:#fff;">Blabla</div>
<script language="JavaScript">
function change() {
document.getElementById('divje').style='background-color:#fff;color:#000;';
}
</script>
<div id = "divje" style = "background-color: #000;color:#fff;" > Blabla
</ div > <script language = "JavaScript" > function change() {
document.getElementById('divje').style='background-color:#fff;color:#000;';
}
wilde ik maken dat met een functie de stijl van een div kan worden aangepast. echter, javascript kan dat niet met .style. Waarmee wel?
10 antwoorden
Gesponsorde links
valles10 - 22/12/2010 11:11
HTML interesse
je moet het anders doen:
document.getElementById('divje').style.backgroundColor = "#fff";
document.getElementById('divje').style.color = "#000";
document.getElementById ( 'divje' ) .style .backgroundColor = "#fff" ;
document.getElementById ( 'divje' ) .style .color = "#000" ;
Bedankt door: Emonk
Emonk - 22/12/2010 11:18 (laatste wijziging 22/12/2010 11:20)
Lid
Dank je, maar dat is nog niet helemaal wat ik zoek. Ik zal de echte code geven (want dat was slechts een voorbeeld):
<script language="JavaScript">
document.open();
for (a=1;a<5;a++) {
for (b=1;b<5;b++) {
c=a-1;
d=b-1;
document.write('<div id="'+a+','+b+'" style="background-color:#000;width:1px;height:1px;top:'+d+'px;left:'+c+'px;position:absolute;"></div>');
}
}
</script>
<?php
for ($b=1;$b<5;$b++) {
for ($c=1;$c<5;$c++) {
echo '<script language="JavaScript">';
echo 'document.getElementById(\''.$b.','.$c.'\').style.backgroundColor=\'#fff\';';
echo '</script>';
}
}
?>
<script language="JavaScript">
document.open();
for (a=1;a<5;a++) {
for (b=1;b<5;b++) {
c=a-1;
d=b-1;
document.write('<div id="'+a+','+b+'" style="background-color:#000;width:1px;height:1px;top:'+d+'px;left:'+c+'px;position:absolute;"></div>');
}
}
</script>
<?php
for ($b=1;$b<5;$b++) {
for ($c=1;$c<5;$c++) {
echo '<script language="JavaScript">';
echo 'document.getElementById(\''.$b.','.$c.'\').style.backgroundColor=\'#fff\';';
echo '</script>';
}
}
?>
De bedoeling is dus dat de achtergrond van de divs die bij JS zijn ingesteld mbv PHP&JS wordt gewijzigd. Dit doet echter helemaal NIETS...
valles10 - 22/12/2010 11:20
HTML interesse
hier heb je toch geen js nodig? Doe het toch gewoon allemaal met php?
Vertel eens wat je wilt bereiken.
Emonk - 22/12/2010 11:24 (laatste wijziging 24/12/2010 10:35)
Lid
Ik heb een 3D-array met daarin voor bepaalde frames per x- en y-coördinaat een achtergrondwaarde.
de bedoeling is dat de divs worden aangepast zodat er een soort van film komt. namelijk de film van de pixels aangegeven in de array.
Zoals je ziet doe ik nog niets met de header maar alleen met de contents
De echte gehele code is hieronder te zien:
<?php
$file = "::HEADER::;
filename: 'test';
author: 'Camil Staps';
description: '';
date: '22/12/2010 9:21';
width: 4;
height: 4;
fps: 4;
::CONTENTS::;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/fff/bbb/888/444;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/00f/00b/008/004;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
--END--;";
$file = str_replace("
","<br>",$file);
$contents = strstr($file,"::CONTENTS::;");
$contents = strstr($contents,"/");
$contents = strrev($contents);
$contents = strstr($contents,">rb<");
$contents = strstr($contents,";");
$contents = strrev($contents);
$lines = explode(";<br>",$contents);
$b=0;
$c=0;
for ($a=0;$a<16;$a++) {
if ($b==4) {
$c++;
$b=0;
}
$lines2[$c][$b]=str_replace(";","",$lines[$a]);
$b++;
}
for ($a=0;$a<4;$a++) {
for ($b=0;$b<4;$b++) {
$frame[$a][$b]=explode("/",$lines2[$a][$b]);
for ($c=0;$c<4;$c++) {
$d=$c+1;
$frame[$a][$b][$c]=$frame[$a][$b][$d];
}
}
}
?>
<script language="JavaScript">
document.open();
for (a=1;a<5;a++) {
for (b=1;b<5;b++) {
c=a-1;
d=b-1;
document.write('<div id="'+a+','+b+'" style="background-color:#000;width:1px;height:1px;top:'+d+'px;left:'+c+'px;position:absolute;"></div>');
}
}
</script>
<?php
for ($a=0;$a<4;$a++) {
for ($b=1;$b<5;$b++) {
for ($c=1;$c<5;$c++) {
echo '<script language="JavaScript">';
echo 'document.getElementById(\''.$b.','.$c.'\').style.backgroundColor=\'#'.$frames[$a][$b][$c].'\';';
echo '</script>';
}
}
}
?>
<?php
$file = "::HEADER::;
filename: 'test';
author: 'Camil Staps';
description: '';
date: '22/12/2010 9:21';
width: 4;
height: 4;
fps: 4;
::CONTENTS::;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/fff/bbb/888/444;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/00f/00b/008/004;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
--END--;" ;
" , "<br>" , $file ) ;
$contents = strstr ( $file , "::CONTENTS::;" ) ; $contents = strstr ( $contents , "/" ) ; $contents = strrev ( $contents ) ; $contents = strstr ( $contents , ">rb<" ) ; $contents = strstr ( $contents , ";" ) ; $contents = strrev ( $contents ) ; $lines = explode ( ";<br>" , $contents ) ;
$b = 0 ;
$c = 0 ;
for ( $a = 0 ; $a < 16 ; $a ++ ) {
if ( $b == 4 ) {
$c ++;
$b = 0 ;
}
$b ++;
}
for ( $a = 0 ; $a < 4 ; $a ++ ) {
for ( $b = 0 ; $b < 4 ; $b ++ ) {
$frame [ $a ] [ $b ] = explode ( "/" , $lines2 [ $a ] [ $b ] ) ; for ( $c = 0 ; $c < 4 ; $c ++ ) {
$d = $c + 1 ;
$frame [ $a ] [ $b ] [ $c ] = $frame [ $a ] [ $b ] [ $d ] ;
}
}
}
?>
<script language="JavaScript">
document.open();
for (a=1;a<5;a++) {
for (b=1;b<5;b++) {
c=a-1;
d=b-1;
document.write('<div id="'+a+','+b+'" style="background-color:#000;width:1px;height:1px;top:'+d+'px;left:'+c+'px;position:absolute;"></div>');
}
}
</script>
<?php
for ( $a = 0 ; $a < 4 ; $a ++ ) {
for ( $b = 1 ; $b < 5 ; $b ++ ) {
for ( $c = 1 ; $c < 5 ; $c ++ ) {
echo '<script language="JavaScript">' ; echo 'document.getElementById(\' '.$b.' , '.$c.' \
').style.backgroundColor=\' #'.$frames[$a][$b][$c].'\';'; }
}
}
?>
Wat het nu doet? Niets... behalve: je ziet een zwart 4x4 vierkantje..
Ibrahim - 25/12/2010 18:43
PHP expert
De style attribute in Javascript is geen string, maar een object. Dat object heeft verschillende attributen die dan de stijleigenschappen bevatten. Wil je een stijleigenschap gebruiken, dan is de juiste syntax:
document.getElementById('id-attribuut').style.<stijleigenschap_naam> = '<nieuwe waarde>';
document.getElementById ( 'id-attribuut' ) .style .< stijleigenschap_naam> = '<nieuwe waarde>' ;
Heeft jou stijleigenschap een naam dat een samengestelde woord is, zoals background-color, dan moet je voor <stijleigenschap_naam> camelCaps gebruiken:
document.getElementById('<id-attribuut').style.backgroundColor = '<nieuwe waarde>';
document.getElementById ( '<id-attribuut' ) .style .backgroundColor = '<nieuwe waarde>' ;
Emonk - 26/12/2010 18:18
Lid
Dankjewel,
Ik heb met deze code eens wat geprobeerd:
<div id="groen" OnClick="muis()">Dit is een tekst</div>
<style type="text/css">
div#groen {
background-color: #00aa00;
color: #ffffff;
display: inline;
}
</style>
<script language="JavaScript">
function muis() {
document.getElementById('groen').style.backgroundColor=#000000;
document.getElementById('groen').style.color=#ff0000;
}
</script>
<div id = "groen" OnClick = "muis()" > Dit is een tekst
</ div > div#groen {
background-color: #00aa00;
color: #ffffff;
display: inline;
}
<script language = "JavaScript" > function muis() {
document.getElementById('groen').style.backgroundColor=#000000;
document.getElementById('groen').style.color=#ff0000;
}
En dit werkt NIET, ookal zou het volgens jullie (toch?) moeten worden dat als je met de muis over de div gaat de kleuren zwart en rood ipv groen en wit worden...
Emonk - 26/12/2010 19:54
Lid
Oke, maar nu werkt het nog niet...
WouterJ - 26/12/2010 20:02
HTML gevorderde
Oeps, was door die kleine dingen de grootste fout vergeten:
De kleuren moeten tussen quotes ( " of ')
Emonk - 26/12/2010 20:09 (laatste wijziging 27/12/2010 08:35)
Lid
aha...
met mijn probeerseltje lukt het nu:
<div id="groen" OnClick="muis()">Dit is een tekst</div>
<style type="text/css">
div#groen {
background-color: #00aa00;
color: #ffffff;
display: inline;
}
</style>
<script language="JavaScript">
function muis() {
document.getElementById('groen').style.backgroundColor="#000000";
document.getElementById('groen').style.color="#ffff00";
}
</script>
<div id = "groen" OnClick = "muis()" > Dit is een tekst
</ div > div#groen {
background-color: #00aa00;
color: #ffffff;
display: inline;
}
<script language = "JavaScript" > function muis() {
document.getElementById('groen').style.backgroundColor="#000000";
document.getElementById('groen').style.color="#ffff00";
}
(niet zeuren over onclick, OnClick of onClick)
Maar voor de andere code werkt het nog niet:
<?php
$file = "::HEADER::;
filename: 'test';
author: 'Camil Staps';
description: '';
date: '22/12/2010 9:21';
width: 4;
height: 4;
fps: 4;
::CONTENTS::;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/fff/bbb/888/444;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/00f/00b/008/004;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
--END--;";
$file = str_replace("
","<br>",$file);
$contents = strstr($file,"::CONTENTS::;");
$contents = strstr($contents,"/");
$contents = strrev($contents);
$contents = strstr($contents,">rb<");
$contents = strstr($contents,";");
$contents = strrev($contents);
$lines = explode(";<br>",$contents);
$b=0;
$c=0;
for ($a=0;$a<16;$a++) {
if ($b==4) {
$c++;
$b=0;
}
$lines2[$c][$b]=str_replace(";","",$lines[$a]);
$b++;
}
for ($a=0;$a<4;$a++) {
for ($b=0;$b<4;$b++) {
$frame[$a][$b]=explode("/",$lines2[$a][$b]);
for ($c=0;$c<4;$c++) {
$d=$c+1;
$frame[$a][$b][$c]=$frame[$a][$b][$d];
}
}
}
?>
<script language="JavaScript">
document.open();
for (a=1;a<5;a++) {
for (b=1;b<5;b++) {
c=a-1;
d=b-1;
document.write('<div id="'+a+','+b+'" style="background-color:#000;width:1px;height:1px;top:'+d+'px;left:'+c+'px;position:absolute;"></div>');
}
}
</script>
<?php
for ($a=0;$a<4;$a++) {
for ($b=1;$b<5;$b++) {
for ($c=1;$c<5;$c++) {
echo '<script language="JavaScript">';
echo 'document.getElementById(\''.$b.','.$c.'\').style.backgroundColor="\'#fff\'";';
echo '</script>';
}
}
}
?>
<?php
$file = "::HEADER::;
filename: 'test';
author: 'Camil Staps';
description: '';
date: '22/12/2010 9:21';
width: 4;
height: 4;
fps: 4;
::CONTENTS::;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/000/000/000/000;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/fff/bbb/888/444;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
/00f/00b/008/004;
/00f/00b/008/004;
/fff/bbb/888/444;
/f00/b00/800/400;
/0f0/0b0/080/040;
--END--;" ;
$file = str_replace( "
" ,"<br> ",$file);
$contents = strstr($file,"::CONTENTS::;");
$contents = strstr($contents,"/");
$contents = strrev($contents);
$contents = strstr($contents,">rb<");
$contents = strstr($contents," ;");
$contents = strrev($contents);
$lines = explode(" ;<br >",$contents);
$b=0;
$c=0;
for ($a=0;$a<16 ;$a++) {
if ( $b== 4 ) {
$c++;
$b= 0 ;
}
$lines2[ $c] [ $b] = str_replace( ";" ,"" ,$lines[ $a] ) ;
$b++;
}
for ( $a= 0 ;$a<4 ;$a++) {
for ( $b= 0 ;$b<4 ;$b++) {
$frame[ $a] [ $b] = explode( "/" ,$lines2[ $a] [ $b] ) ;
for ( $c= 0 ;$c<4 ;$c++) {
$d= $c+1 ;
$frame[ $a] [ $b] [ $c] = $frame[ $a] [ $b] [ $d] ;
}
}
}
?>
<script language = "JavaScript" > document.open();
for (a=1;a<5 ;a++) {
for ( b= 1 ;b<5 ;b++) {
c= a-1 ;
d= b-1 ;
document.write( '<div id="' +a+',' +b+'" style="background-color:#000;width:1px;height:1px;top:' +d+'px;left:' +c+'px;position:absolute;"></div> ');
}
}
<?php
for ( $a= 0 ;$a<4 ;$a++) {
for ( $b= 1 ;$b<5 ;$b++) {
for ( $c= 1 ;$c<5 ;$c++) {
echo '<script language="JavaScript"> ';
echo 'document.getElementById(\''.$b.','.$c.'\').style.backgroundColor="\'#fff\'";';
}
}
}
?>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.