Autor Zpráva
medved
Profil
Prosím o radu.
Potřebuji změnit velikost okraje objektu po kliknuti na jiný objekt a ta velikost ještě nabývá dvou hodnot závislých na velikosti displeje.
Představoval bych si to takto (v sekci style vůbec nevím jak na to ) :

<style>
zmena:100px;
@media(min-width:500px){zmena:200px;}
</style>

<script>
function okraj(x){
return (x.marginLeft=zmena);
}
</script>
<body>
<img src=obrazek.jpg onclick=okraj(objekt.style)>

<div id="objekt">blablabla</div>
</body>
RastyAmateur
Profil
medved:
Tak třeba by šlo jednoduše na kliknutí přidat nějakou třídu a velikost obrázku v různých situacích si pak v CSS ohlídáš jednoduše
img { width: 100px; }
img.clicked { width: 200px; }
@media only screen and (max-width: 30em) {
  img { width: 300px; }
  img.clicked { width: 400px; }
}
medved
Profil
RastyAmateur:
img.clicked mi nějak nefunguje, není tam nějaký překlep?
Jak jsem psal, potřebuji měnit jiný objekt, než na který klikám. čili něco jako: objekt1.clicked { objekt2.width: 200px;} zkouším to všelijak a nejde mi to, netuším, kde zjistit správnou syntaxi.
Mlocik97
Profil
medved:
ne neni.... tu triedu clicked si musíš totiž sám pridať do elementu podľa potreby... typicky skrz:

$("#mujobrazek").click(function() {
    $(this).addClass('clicked');
})

a do elementu dopíšeš dané ID:

<img src="pes.png" alt="pes" id="mujobrazek">

kliknutím na obrázok sa pes zvätší... ale prepísaním selectoru môžeš zvoliť ať sa zmení po kliknutí na tlačítko alebo vlastne čokoľvek.
Document - živá ukázka
RastyAmateur
Profil
medved:
objekt1.clicked { objekt2.width: 200px;}
Jsi si jistý, že to opravdu zvládneš změnit sám a víš, co děláš?
medved
Profil
RastyAmateur:
Nejsem :-), ale vytrvalost a trpělivost jsou moje nástroje. Skládám ta divná slova tak dlouho až to funguje. A občas se mi to stane :-)))
medved
Profil
Mlocik97:
Mě to prostě nechodí. Vezmu celý kód, pošlu na server, zobrazí se pes, ale kliknutím se nestane nic. Jak to, že to v ukázce funguje? Musím otevřít nějakou knihovnu, nebo co je špatně?¨
Navíc u řádku: $("#mujobrazek").addClass('clicked');
mi poslední slovo svítí celé zeleně i s uzavírací závorkou a středníkem, jakoby tam byla nějaká chyba a závorka je ignorovaná. (používám pspad, škoda, že to sem nejde zkopírovat i s barvami)
uložil jsem celý kód zde:ridery.cz/pokus2.html
T-fon
Profil
Používáš jQuery funkce, takže si tam tu knihovnu musíš nahrát.
Mlocik97
Profil
medved:
jQuery nainstaluješ buď skrz:

npm install jQuery

alebo použiješ CDN, teda do kódu vložíš tento riadok (presne na miesto kde je komentár "jQuery lib"):


<script src="ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


prípadne stiahneš JS súbor.

viďte jquery.com/download

ďalšia možnosť je prepísať jQuery do Vanilla JS (čož je vyhovujúce pre prípad že je to jediná vec kde by ste jQuery využili, v akýchkoľvek komplexnejších projektoch jQuery využijete vždy)

p.s. pspad je shit na tvorbu webstránok, rozumnejšie je používať Sublime text, VSCode alebo Atom

ja osobne používam VS Code a Atom



p.s. ostatne jQuery je najpoužívanejšia knižnica a aj ju odporúčam používať, bežne sa neoplatí ju používať ak potrebujete napísať len jednu funkciu, ale pri čomkoľvek komplexnejšom hodne usnadní prácu.
medved
Profil
Uf díky moc všem. Nevím jestli jsem to udělal kulantně, ale je to a funguje to! Krásně se to mění na různě velkých obrazovkách. Pro mě asi zatím nejsložitější záležitost.
Jen na mobilu a malém tabletu se (pro mě bezdůvodně) zmenší písmo v druhém odstavci, a přitom nikde nepracuji s velikostí písma... Zkoušel jsem, dle rady jednoho kolegy, <meta name="viewport" content="width=device-width">, ale to mi rozdrbe celou stránku. ridery.cz

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0