Curs Javascript

In acest tutorial JavaScript e prezentat un script, in doua variante, care adauga in pagina un buton pentru derulare la inceputul paginii, butonul e adaugat doar cand utilizatorul deruleaza pagina in jos, mai mult decat inaltimea ferestrei.
Ideea e simpla, se inregistreaza un eveniment onscroll care detecteaza derularea paginii si verifica pozitia barei de derulare. Daca pozitia barei de derulare e mai mult decat inaltimea ferestrei navigatorului web, si butonul nu este in pagina, il adauga. Iar cand utilizatorul deruleaza pagina in sus si pozitia barei de derulare devine mai mica decat inaltimea ferestrei, si butonul e in pagina, il sterge.
Astfel, butonul apare in pagina doar cand e necesar. Explicatii sunt si in comentariile din cod.


- Ca sa testati acest script, derulati aceasta pagina in jos; butonul va apare in partea dreapta, cu pozitie fixa.

• Ca sa includeti acest script in pagina dv., adaugati urmatorul cod in zona <head> </head> a documentului HTML.
Grafica si pozitia butonului pot fi definite din codul CSS.
<style type="text/css"><!--
#scrtop {
 position:fixed;
 top:80%;
 right:10px;
 width:29px;
 height:31px;
 background-color:yellow;
 border:2px solid blue;
 cursor:pointer;
 text-align:center;
 font-family:Calibri, Arial, sans-serif;
 line-height:15px;;
 font-size:11px;
 padding:0;
 -moz-border-radius:10px;
 -webkit-border-radius:10px;
 -khtml-border-radius:10px;
 border-radius:10px;
}
#scrtop b {
 display:block;
 margin:2px auto -1px auto;
 font-size:21px;
 padding:0;
}
--></style>
<script type="text/javascript"><!--
/* Adaugare buton pentru derulare la inceputul paginii: marplo.net/javascript/ */

// functie pt. obtinere inaltime fereastra
function getBrowsHeight() {
  if (self.innerHeight) var brows_height = self.innerHeight;
  else if (document.documentElement && document.documentElement.clientHeight) {
    var brows_height = document.documentElement.clientHeight;
  }
  else if (document.body) var brows_height = document.body.clientHeight;

  return brows_height;
}

// functie pt. obtinere pozitia barei de derulare
function scrollY() {
  return window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
}

var brows_height = getBrowsHeight();         // inaltime fereastra

// inregistrare eveniment detectare derulare pagina
window.onscroll = function() {
  var scrl_pos = scrollY();                // pozitia barei de derulare

  // daca pozitia barei de derulare e mai mult decat 110% din brows_height, si nu este element '#scrtop'
  // adauga buton pt. derulare la inceputul paginii
  // altfel, daca pozitia barei de derulare e mai mica decat 110% din brows_height, si este element '#scrtop'
  // sterge butonul pt. derulare la inceputul paginii
 if(scrl_pos > (brows_height * 1.1) && !document.getElementById('scrtop')) {
   document.body.innerHTML += '<div id="scrtop" onclick="scrollTo(0,0)"><b>&uArr;</b>TOP</div>';
 }
 else if(scrl_pos < (brows_height * 1.1) && document.getElementById('scrtop')) {
   document.body.removeChild(document.getElementById('scrtop'));
 }
}
--></script>

Buton de derulare la inceputul paginii - varianta 2

Iata o alta varianta, mai sigura, ce creaza acelasi efect. De aceasta data, tag-urile HTML pt. buton sunt adaugate direct in codul HTML, initial ascuns. Scriptul face butonul vizibil cand e necesar.
- Folositi aceasta versiune daca prima varianta afecteaza alte scripturi JavaScript din pagina care lucreaza cu evenimente JS. Aceasta se poate intampla fiindca butonul e adaugat dinamic in codul HTML si afecteaza structura DOM.

- Ca sa includeti acesta varianta in pagina, adaugati urmatorul cod CSS in zona <head> </head> a documentului HTML.
<style type="text/css"><!--
#scrtop {
 display:none;
 position:fixed;
 top:80%;
 right:10px;
 width:29px;
 height:31px;
 background-color:yellow;
 border:2px solid blue;
 cursor:pointer;
 text-align:center;
 font-family:Calibri, Arial, sans-serif;
 line-height:15px;;
 font-size:11px;
 color:blue;
 padding:0;
 -moz-border-radius:10px;
 -webkit-border-radius:10px;
 -khtml-border-radius:10px;
 border-radius:10px;
}
#scrtop span {
 display:block;
 margin:2px auto -1px auto;
 font-size:21px;
 font-weight:800;
 padding:0;
}
--></style>
Apoi adaugati urmatorul cod JavaScript in zona BODY, la sfarsitul paginii, inainte de tagul de inchidere </body>.
<div id="scrtop" onclick="scrollTo(0,0);"><span>&uArr;</span>TOP</div>
<script type="text/javascript"><!--
/* Adaugare buton pentru derulare la inceputul paginii: marplo.net/javascript/ */

// functie pt. obtinere inaltime fereastra
function getBrowsHeight() {
  if (self.innerHeight) var brows_height = self.innerHeight;
  else if (document.documentElement && document.documentElement.clientHeight) {
    var brows_height = document.documentElement.clientHeight;
  }
  else if (document.body) var brows_height = document.body.clientHeight;

  return brows_height;
}

// functie pt. obtinere pozitia barei de derulare
function scrollY() {
  return window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
}

var brows_height = getBrowsHeight();         // inaltime fereastra

// register event on scroll window
window.onscroll = function() {
  var scrl_pos = scrollY();                // pozitia barei de derulare

  // daca pozitia barei de derulare e mai mult decat 110% din brows_height, face '#scrtop' vizibil
  // altfel, daca pozitia barei de derulare e mai mica decat 110% din brows_height, ascunde '#scrtop'
 if(scrl_pos > (brows_height * 1.1)) {
   document.getElementById('scrtop').style.display = 'block';
 }
 else if(scrl_pos < (brows_height * 1.1)) {
   document.getElementById('scrtop').style.display = 'none';
 }
};
--></script>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block
.some_class {
  display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveing
I`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendo
Estoy viviendo aquĆ­.
- Traiesc /Locuiesc aici.
Adaugare buton derulare la inceputul paginii

Last accessed pages

  1. Prezentul continuu - Exercitii si teste incepatori (38401)
  2. Prezentul simplu si continuu - Present Tense Simple and Continuous (148239)
  3. Sufixele -ful, -less si -ness - ful, less and ness suffixes (17757)
  4. Cursuri Limba Franceza (9044)
  5. Verbe modale - SHALL, SHOULD, OUGHT TO, WILL, WOULD, USED TO, BE TO, DARE (33189)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (976)
  2. Gramatica limbii engleze - Prezentare Generala (631)
  3. Exercitii engleza - English Tests and exercises - Grammar (564)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (460)
  5. Coduri pt culori (368)