Diskuze: Open Window skrz CSS3
V předchozím kvízu, Online test znalostí HTML a CSS, 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í HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
<table>
<td>..údaje..</td>
<td onClick="window.open('form.php?polozka=1'>Objednat</table>
Oprava
<table>
<td>..údaje..</td>
<td onClick="window.open('form.php?polozka=1');">Objednat</td>
</table>
Ahoj,
Proto se ptám jestli to nelze jinačí cestou. Například přes CSS, našel jsem toto " https://www.webdesignerdepot.com/…l5-and-css3/ " Akorát přemýšlím že v tomto případě by každá stránka, kde je daná položka musela obsahovat formulář. Což je zhruba dalších 300 řádků kódu.
Muzete pridavat na web javascript? Pak by stacilo te bunce dat napr class="klikaci" a jestli je potreba, tak data-polozka="XXX". V JS pak pro vsechny prvky tridy "klikaci" udelat event pro klik, kde se nacte data-polozka a zavola se ten window.open
Tuším kam směřuješ ale nejsem si jist jestli tě plně chápu, to bych
ten styl rovnou mohl požít pro odkaz a. Mohl bys uvést příklad v kódu?
Mám to totiž vedené přes php a formulář si bere údaj z které položky se
na něho zrovna odkázalo
viz:
..href="form.php?polozka=polozka1"..>
nebo jako jsem to měl teď
<..href="javascript:void(0);" onClick="window.open('form.php?polozka=polozka1')";...>
A právě přes ty styly si myslím že by to mohlo fungovat ale nevím přesně jak,
1] Kdyz neni odkaz odkazem, tak je lepsi pouzit button
2] Editor to prece smaze, tak onClick musis obejit tim, ze das buttonu tridu a
primo do tagu ulozis to, co potrebujes mit v kazde url jine
<button type="button" class="formklik" data-polozka="1">button</button>
3] za tabulkou vlozis js
$('.formklik').click( function(){ window.open('form.php?polozka='+$(this).attr('data-polozka'); } );
Tohle řešení by se mi i líbilo, ale ten editor mi ten script stejně maže. button nechá ale smaže script. Ale styly tam nechá v klidu. Zkusím to udělat přes ty styly (jak jsem posílal odkaz). Pokud se mi to povede postnu to sem.
A proc ten JS nedas jinudy kdyz muzes do php? Pres tinymce to samozrejme nejde kdyz si nepovolis tag script
Než jsem stačil postřehnout tvou připomínku na JS tak jsem se zabral do
toho CSS a mám to co jsem potřeboval. Díky za rady a popostrčení.
Přidávám kód kdyby někdo v budoucnu řešil obdobný problém a chtěl se
vyhnout JS.
Nejdříve styly viz. odkaz výše.
<style>
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0px;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 820px;
position: relative;
top: 0px;
margin: 10px auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover { background: #00d9ff; }
</style>
Následuje div s oknem samotným, ten můžete vložit úplně nahoru k head nebo až úplně dolu. Je jedno kam ho vložíte jelikož je skrytý.
<div id="openModal" class="modalDialog">
<div><a href="#close" title="Close" class="close">X</a> <iframe src="form.php?zbozi=zbozi15" height="900px" width="820px" scrolling="yes" noresize="noresize" frameborder="no"></iframe></div>
</div>
Poznámka: Abych nemusel na každou stránku kopírovat formulář do kterého bych ručně dopisoval parametry, vložil jsem PHP formulář který si je bere ze stránky za pomocí GET. Pokud by šlo o formulář pro jednu stránku (například LOGIN) tak samozřejmě nemusí být iframe ale rovnou form.
a poslední, v tabulce jsem pouze upravil odkaz:
<td>
<p><a href="#openModal" class="button" style="float: center; font-family:roboto; font-size: 20px; width: 200px">Objednat</a></p>
</td>
Zobrazeno 10 zpráv z 10.