Diskuze: basic
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Pokud to má vypisovat jen sirku, tak to zkus udělat takhle:
var w = 100;
sirka = document.getElementById("ctverec");
sirka.style.width = w;
alert(w);
// A nebo takhle, tohle je tvuj priklad
var w = 100;
document.getElementById("ctverec").style.width = w;
alert(w);
Ne to ne, akorát to vypíše velikost té proměnné w.
A co teda? Nějak nechápu?
Pokud chceš měnit šířku v JS pomocí proměnné, tak ten(dejme tomu
čtverec) musíš vytvořit pomocí JS a ne v CSS...
Všechny hodnoty co jsi mu nastavil v CSS, nastavíš v JS...Záleží o co ti
vlastně jde? Nějak teď nechápu čeho chceš docílit?
Nechci měnit proměnnou, chci jen vypsat šířku objektu, popřípadě uložit do proměnné. (V mém příkladu ji chci jen vypsat do alertu)
Myslis nejak takhle?
//pouzil jsem jen HTML a JS :)
var w = 100;
var h = 100;
var c = document.getElementById("ctverec");
c.style.background= "blue";
c.style.width = w + "px";
c.style.height = h + "px";
alert(w);
c.appendChild();
To je slozitejsi problem.
document.getElementById("div1").style.width
Tohle funguje, pokud existuje <id="div1" width="123">
document.getElementById("div1").style.offsetWidth
Tohle by melo byt univerzalnejsi. Ale muze to sirku spatne pocitat pro marginy nebo paddingy. Nevim jesli oboje nebo jen jedno z toho.
<style>
To jsem nikdy nepouzil. Ale da se k tomu nejak dostat.
Vykopirovane kousky kodu z ruznych stranek...
google = javascript get width from style tag
document.getElementById('banner-contenedor').clientWidth
w=this.offsetWidth
window.getComputedStyle(elem).width
function getInnerWidth(elem) {
var style = window.getComputedStyle(elem);
return elem.offsetWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) - parseFloat(style.borderLeft) - parseFloat(style.borderRight) - parseFloat(style.marginLeft) - parseFloat(style.marginRight);
}
$("#banner-contenedor").css('width'); // jquery
yourItem.style['cssProperty']
Tiež som sa s tým kedysi natrápil. Nepamätám si už vysvetlenie, že prečo je to tak, ale proste nemôžeš čítať element.style.width, ale iba element.width, bez style. A pri zápise zasa nemôžeš meniť element.width, ale meniť to už musíš so style, napríklad element.style.width = 32 + 'px'.
Jo. A ak ťa však zaujíma nie šírka elementu, ale pridelený štýl v <style> , musíš to čítať cez getComputedStyle. Aj s príkladmi to máš vysvetlené na MDN: https://developer.mozilla.org/…omputedStyle
Ono je to zpusobeno tim, jak to prohlizec renderuje. On neco dava primo na screen a neco do javascriptoveho element-stromu. Neni vsude vsechno. js - jquery je v tomhle vic univerzalnejsi. Cili, cely problem by bylo mozne vyresit i pres jquery.
Zobrazeno 10 zpráv z 10.