» »

Prikaži več gumb

Prikaži več gumb

dynr la ::

Pozdrav,
v HTML jeziku delam spletno stran in me zanima, kaj moram storit in kakšna je koda da bi lahko med besedilo dodal Prikaži več gumb, da se bo potem prikazalo ostalo besedilo?

Hvala

technolog ::

Ja, za to boš pa že rabil javascript.

cobrica ::

Še boljša rešitev PHP, kjer določiš z funkcijo koliko znakov naj izpiše(recimo 400) in če prekorači 400 znakov prikaze gumb več, kjer izpiše celotno vsebino.

NeMeTko ::

Pa saj se da tudi z osnovnim html, tako da na gumb linkaš drugo stran, kjer imaš 'več'(kopija te iste strani z gumbom 'nazaj' ali 'manj' in polnim tekstom).

Efekt sicer ni tko fancy, kot z javaskriptom ampak za prvi začetek, je tudi to bolje, kot da se greš zdej matrat z javaskriptom in php, če še osnovnega html nisi osvojil.

cobrica ::

NeMeTko je izjavil:

Pa saj se da tudi z osnovnim html, tako da na gumb linkaš drugo stran, kjer imaš 'več'(kopija te iste strani z gumbom 'nazaj' ali 'manj' in polnim tekstom).

Efekt sicer ni tko fancy, kot z javaskriptom ampak za prvi začetek, je tudi to bolje, kot da se greš zdej matrat z javaskriptom in php, če še osnovnega html nisi osvojil.

Seveda, to je najenostavneje in najhitreje, ampak na omenjen način se pa zadeve dejansko na velikih projektih izdelajo.

_Dormage_ ::

cobrica je izjavil:

Še boljša rešitev PHP, kjer določiš z funkcijo koliko znakov naj izpiše(recimo 400) in če prekorači 400 znakov prikaze gumb več, kjer izpiše celotno vsebino.

Php je server-side, kako bo php prikazal več vsebine ko uporabnik klikne gumb ?
Z phpjem se lahko odločiš ali gumb je oziroma ni, ampak vse kar se dogaja client-side nima php nobene veze.
Javascript za tako zadevo je precej enostaven.
OP, googlaj malo :)

<div style="height:20px;overflow:hidden; width:200px;" id="blah">
Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello
Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello
Hello Hello.Hello Hello Hello.Hello Hello Hello.Hello Hello Hello.
</div>
<button type="button" onClick='showHide();'>vec/manj</button> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
var open = false;
function showHide(){
var element = $('#blah');
if (open) {
        element.animate({height:'20px'}); 
	
    }
    else {
        element.animate({height:'130px'});
    }
    open = !open;
}

</script>

NeMeTko ::

Dajta zaustaviti konje - vprašanje je postavil več kot očitni začetek pisanja html vsebin.

Vidva se pa kregata, kako bi to rešil 'advanced user'.

_Dormage_ ::

NeMeTko je izjavil:

Dajta zaustaviti konje - vprašanje je postavil več kot očitni začetek pisanja html vsebin.

Vidva se pa kregata, kako bi to rešil 'advanced user'.


Mene samo zanima kako bi se to rešilo z phpjem.
Primer je pa precej enostaven..
Če OP ne bo razumel bo upam zastavil podvprašanja.

NeMeTko ::

Po moje tudi v php ne naredijo nič drugega, kot da se generira nova stran, ki prikazuje polni tekst.
Npr. po default kličeš stran.php, kjer se zgenerira prikaz prvih x vrstic besedila
Če klikneš na 'več' se pa pokliče stran.php?vrstice=vse

Nisem ravno php programer, ampak tako po 'začetniško' bi jaz to naredil.

_Dormage_ ::

Ja točno to, ampak to zahteva load nove strani.
Če imaš na strani polno vsebine in uporabniku zarad malo texta reloadaš page je... :8)
Če že mora bit php pol ajax request na nek php, ki vrne text. Spet BV.

NeMeTko ::

Za nekakšne 'prve začetke' je stvar ok, sploh če se gre zgolj za učenje nekih osnov.

Za neko malo bolj resno stran, bi se pa tudi jaz pribežal k kakšnemu javascriptu. Če malo pobrskaš niti ni treba nevemkaj obvladati zadevo, ampak ponucaš kar obstoječe knjižnice oz. zbirke (npr. jQuery), s katerimi take reči izvedeš brez poglabljanja v sam Javascript.

Vendar mislim, da bi se moralo dati zadevo elegantno rešiti tudi s pomočjo CSS - v tem primeru niti nebi bil potreben reload strani.

MrBrdo ::

cobrica je izjavil:

Še boljša rešitev PHP

Ne, ni boljša.
MrBrdo

alexa-lol ::

(1) ponovno nalaganje strani .. ni priporočljivo
(2) JavaScript .. tu je zdaj vseeno če imaš podatke že gor na strani in samo z $(...).hide() in $(...).show() operiraš al pa še AJAX klic vmes izvršiš in potem appendaš. JS rabiš v vsakem primeru.

PS $ .. JS knjižnica jQuery .. ne iskat tega v "navadnem" JS

PSS YouTube ima narejen na 1 način tist gumb Prikaži več

Zgodovina sprememb…

NeMeTko ::

S pomočjo CSS pa nihče ne obvlada rešitve?

Če smo že zašli proč od variante za popolne začetnike (za kar se je prvotno tu šlo) in se spuščate v globeli JS in Ajax prijemov, potem bi upal, da se bo našel tudi kdo, ki obvlada rešitev s pomočjo CSS - brez JS, Ajaxa in ostale navlake. Koneckoncev je CSS sestavni del html?
(edino, kar zamerim CSS, je to, da ga vsak browser neki po svoje podpira in izvaja)

RockyS ::

Hja, in kako boš ti s CSS omejil dolžino "vidnega" dela besedila? Skrit in prikazat ni problem, ampak nekako moraš omejit dolžino prvega besedila, razen če imaš že v bazi razdeljene vsebine...

misek ::

Kaj pa kaj takega?

NeMeTko ::

@RockyS - npr. preko CSS box propery-jev overflow in resize-a boxa? (Nisem expert, samo rahlo se mi nekaj sanja na to temo)

RockyS ::

Misek ne vem če je to letelo name ampak uporablja se JS.

NeMeTko ja gre že na ta način, ampak dobit obliko, ki bo dejansko nekako zgledala in stala pa ne moreš. Sploh če dovoliš, da se besedilo vnaša preko npr. tinymce, in user uporabi poudarke, underline in ostale zadeve katere zvišajo vrstico, lahko bi določil line-height ampak ne vem če bi pri teh zadevah palila, ker se ti zna zgodit da boš imel besedilo odrezano na sredini vrstice.

Skratka, če hoče funkcionalno zadevo bo uporabil samo PHP (za pridobivanje in krajšanje besedila) in CSS za prikaz/skrivanje.

vorantz ::

Zakaj pa bi začetnik neki kompliciral čisto brez veze z nečim neuporabnim?
Javascript se bo moral naučit prej al slej

alexa-lol ::

Na kakšen način boš s CSS spreminajal more - less.... to, da narediš ob :hover, da se ti ce ltext pojav to ni nič novega... kako pa meniji delajo.

CSS: http://cssmenumaker.com/menu/red-and-wh...

NeMeTko ::

Kdo pa pravi, da odkrivamo 'nekaj novega'?

Poleg :Hover bi šlo tudi z :OnClick, da stvar nebi 'norela' vsakič, ko se z miško približaš boxu. Obnašanje kot v menijih dejansko ni zaželjeno v obravnavanem primeru.

_Dormage_ ::

Css se tudi da.
<style type="text/css">
#lightbox .more{
        display:none;
    }
 #lightbox:target .more{
         display:block;
 }

 #lightbox:target .more-toggle{
 	display: none;
 }

</style>
<div id="lightbox">
	Blah blah blah
          <div class="more">
              Hi!! <br />

              HELO MOTO !! :)
             <br> <a href="#">Manj</a><br />
          </div>
	<a class="more-toggle" href="#lightbox" >Vec</a>
</div>

NeMeTko ::

Sej sem vedel, da se morat dat... :)
(Samo najdet se mora eden, ki obvlada)

MrBrdo ::

Sej je kul trik, samo mislim da bi tole delovalo samo če imaš le 1 gumb manj/več. Definitivno je javascript tukaj daleč najbolj standardna opcija, verjetno tudi najboljša.
MrBrdo

NeMeTko ::

Kaj pa vem.... če se hočeš iti html5, potem bo počasi treba prečistiti 'orodjarno' in prebrskati, kaj se da naresti brez JS in kaj se še vedno ne da in mora ostati v orodjarni.

Itak pa bo vsak uporabljal tisti pristop, ki ga je najbolj vajen, pa če obstaja html5/css varianta ali ne.

_Dormage_ ::

MrBrdo je izjavil:

Sej je kul trik, samo mislim da bi tole delovalo samo če imaš le 1 gumb manj/več. Definitivno je javascript tukaj daleč najbolj standardna opcija, verjetno tudi najboljša.

Komot furaš več instanc, če želiš ti napišem primerček.

Zgodovina sprememb…

galu ::

Vsakemu divu dat svoj ID in jim v CSS pač dodat de lastnosti...
Seveda gre. Ampak te stvari se pač ponavadi delajo z JS. Šlo bi tudi s PHP, Python, Java, CSS...

Jaz bi se (kot večina, verjetno) vsekakor to spravil pisat v JS. :)
Tako to gre.

Zgodovina sprememb…

  • spremenil: galu ()

alexa-lol ::

Mene zanima kako bi s CSS hendlu klik event. Lepota JS je da samo v class ali pa id nekaj namečeš (npr. collapsed) in pol s tem operiraš.

_Dormage_ ::

Odvisno kaj točno hočeš.
Zgornji primer handla click event in je pure CSS.
Poglej si :target lastnost in kako deluje, ni toliko uporabno v praksi, ker ima posledice...

technolog ::

IE, niti verzija 10 ne podpira :target.

Vsekakor je tukaj CSS only slabša rešitev.

alexa-lol ::

Ql trik
Edino kar me moti je tist #... v URLju, Se da to kako obiti?

technolog ::

Itak da ne, če zadeva dela na osnovi tega.

alexa-lol ::

technolog je izjavil:

Itak da ne, če zadeva dela na osnovi tega.


Ja :target dela tako samo sem mislil, če je kakšen drug selektor, naprimer kot :active samo, da je v stanju aktivnosti tudi ko dvigneš prst iz gumba za klik, ali pa naprimer :focus, ampak tudi za ostale elemente, ne samo tiste, ki za interakcijo uporabljajo tipkovnico.

MrBrdo ::

Jaz sem proti temu da bi se CSS uporabljal v ta namen. Enostavno ni temu namenjen, če se to da je sicer cool ampak tukaj že govorimo o nekem behaviorju kar meni ne spada v domeno "stylesheeta". Prej bi to dal v domeno samega HTML kot pa v CSS, Javascript pa je daleč najbolj primeren iz tega vidika. V HTML bi lahko bilo smiselno ker gre za neke vrste strukturo dokumenta. V sklopu tega kar je trenutno možno mi je najbolj simpatična unobtrusive JS rešitev ki bi zgledala nekako tako:
<div data-more-link="Več" data-text-limit="250">celotna vsebina</div>
in pripadajoč JS, morda še default text za link v headu (meta tag), v kolikor ni podan data-more-link pri posameznem elementu. Edino ne vem če zna bit tu problem da se bi najprej pojavila celotna vsebina, preden bi JS naredil svoje.
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

technolog ::

Točno tako. Tud z vidika SEOta (in accessiblitya) je bolje tako, da je vsebina, ki je celovita kot taka, tud v kodi v enem kosu in ne raztrgana v več DIVov/elementov.

Primer ko MrBrdova rešitev ne bi bla kul je takrat, ko je skrite vsebine dejansko zelo veliko (če rečem >50Kb), prikaži več pa dejansko klikne mali % obiskovalev strani. V tem primeru je bolje kaka rešitev z AJAXom.

Fora je, da je treba uporabljat možgane in se odločat po situaciji. Vedno. :)

Zgodovina sprememb…

RockyS ::

Ker si omenil SEO, kako google prenaša skrito besedilo?

MrBrdo ::

Odvisno kako je skrito. Če ga naknadno skriješ z Javascriptom na podoben način kot sem jaz napisal, potem ne bo nobenih težav. Če ga pa nalagaš z Ajaxom verjetno ni ravno najboljše.
MrBrdo


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Spletne strani danes

Oddelek: Izdelava spletišč
324396 (3522) hendriks

Starcraft 2 beta key tekmovanje

Oddelek: Igre
393096 (2377) destroyer2k
»

Kako zagotoviti prikazovanje celotne strani

Oddelek: Izdelava spletišč
71474 (1359) coldman
»

Palm OS

Oddelek: Programiranje
6928 (814) atlet
»

Let me introduce my self, I`m SLO-TECH

Oddelek: Slo-Tech
101466 (1180) dexter

Več podobnih tem