Autor Zpráva
medved
Profil
Ahoj,
chci kliknout na první odstavec a změnit jen jeden okraj druhého odstavce. Když změním margin na margin-left nestane se nic. Ani margin:0px 0px 0px 100px nejde. Musím použít jen margin na změnu všech okrajů stejně, což nechci. Jak na to?

<html>
<body>
<div onclick=druhy.style.margin="100px" onmouseout=druhy.style.margin="0px">
Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první,
 Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první, Odstavec první
</div>
 <br>
<div id="druhy">
Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, 
Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý, Odstavec druhý
</div>
</body>
</html>
Keeehi
Profil
medved:
Pravděpodobně je to kvůli tomu, že v javascriptu to není margin-left ale marginLeft. No a taky by to chtělo ten element vybrat pořádně. Živá ukázka
Mlocik97
Profil
a ja bych to napsal uplne inak, príklad skrz jQuery, avšak v prípade že by to mala byť jediná vec, kde by bol jQuery využitelný, tak je zbytočné ťahať celú knižnicu, a napsal bych toto isté skrz vanilla JS.

<script>
$('document')on('click', '#prvy', function() {
    $('druhy).addClass('zmenaodstavca');
});
</script>
<style>
.zmenaodstavca { margin-left: 100px };
</style>

p.s. nenávidím tieto inline zápisi v ktorých sa mieša kód HTML, CSS, JS a prípadne ešte niečoho...
Kcko
Profil
Mlocik97:
Tvoje ukázka je plná chyb, document se nepíše do apostrofů/uvozovek, a v selektoru druhy ti chybí ukončovací apostrof.
Mlocik97m
Profil *
Kcko:
psal som to na mobilu, chyby som si vsimol (a ano viem jak sa to pise, aj to ze document sa pise bez apostrofov), ale edit mi nejde. sry...


rovnako mi v druhom selectore chyba mriezka


ale jde o proncip jak by to malo byt napisane rozumne.


malo to byť takto:

<script>
$(document)on('click', '#prvy', function() {
    $('#druhy').addClass('zmenaodstavca');
});
</script>
<style>
.zmenaodstavca { margin-left: 100px };
</style>
medved
Profil
Keeehi:
Tak to je mazec, já to "ladil" několik hodin. Zkoušel jsem pomlčku, tečku, dvojtečku, bez znaménka i ten getelementbyid a ono je tam velké písmeno. Funguje i zápis, který jsem psal ale netušil jsem, že marginleft a marginLeft je rozdíl. Díky moc.
Teď mě čeká ještě větší špek. Aspoň pro mě. Po události onmouseout chci vrátit okraj zpět, jenže nevím na jakou hodnotu. Mám jiný okraj pro mobily a jiný pro monitory. Testuji jen jestli je šířka nad 1000px. Do 1000px to považuji za mobily a tablety a potřebuji okraj 0px, pro zbytek 200px. Lze při onmouseout opět zjistit šířku a dát tam podmínku, nebo lze tuto hodnotu uložit do proměnné a podle její hodnoty pak měnit okraj? Hlavně žádné velké akce, pohybuji se na hranici začátečníka :-)
Jestli jsem to dobře nevysvětlil, lépe to bude znát na stránce: www.ridery.cz. Zatím je to pro veřejnost schované, zobrazí se to po kliknutí na větu pod obrázkama sekaček. Tři bloky, každý má svůj obrázek, po kliknutí na něj se zvětší a dojde k onomu posunutí okraje textu. Po odjetí myši jej potřebuji vrátit zpět. Jenže jsem si vymyslel, že jiná šířka bude u PC a jiná u mobilu, vypadá to prostě lépe. První obrázek je teď natvrdo pro PC, další dva pro mobil...


Mlocik97:
To už je na mě vysoká škola, ale díky za reakci. Ohledně míchanice chápu, když používám externí soubor css, tak než překliknu okna, tak už si nepamatuju jaký styl, který prvek má a nemám monitor velký pro dvě okna... Takže mám raději chaos v jednom okně :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0