Professional Documents
Culture Documents
Piu C6
Piu C6
1 JAVASCRIPT
JavaScript este un limbaj de programare din categoria "Scripting Languages" care face posibil
ca paginile web să fie mai interactive. A fost lansat sub numele de "LiveScript" iar schimbarea
numelui în JavaScript a fost legată de strategia de marketing.
Scripturile JavaScript sunt introduse în pagina HTML și sunt interpretate și executate debrowser.
JavaScript este o unealtă foarte bună dacă se dorește controlul conținutului paginilor în funcție de
dată, oră, sistem de operare sau browser-ul utilizatorilor, respectiv dacă se dorește implementarea
de site-uri interactive, care să comunice cu vizitatorii, site-uri dinamice, validarea datele primite
din formulare.
JavaScript poate fi inserat în cadrul paginilor HTML. Pentru a fi interpretat de către browser
trebuie marcat codul astfel:
<script type="text/javascript">
Codul javascript
</script>
O altă metodă utilizată pentru a folosi scripturile JavaScript, metodă recomandată și pe care o
consider mai practică, este aceea de utilizare a scripturilor externe. Cei care folosesc CSS
sunt obișnuiți cu folosirea fișierelor externe de stiluri. Este aproximativ același lucru: se
adresează fișierul extern în interiorul etichetei <HEAD> a fișierului HTML și apoi o modificare
a acestui script se propagă în întreg documentul.
Iată cum adresăm un fișier JS extern (fișierul extern este exemplu.js):
<html>
<head>
<title>
Exemplu
</title>
<script type="text/javascript" src=exemplu.js>
</script>
</head>
<body>
Continut
</body>
</html>
În exemplul de mai sus am adresat fișierul extern JavaScript în zona <HEAD> a documentului
HTML și am atribuit marcajului <h1> id-ul "text1". Un ID JavaScript funcționează ca un ID în
CSS: poate fi folosit o singură dată într-o pagina. Iată și codul JavaScript:
window.onload = scrieText;
function scrieText() {
document.getElementById("text1").innerHTML = "Text
JavaScript din fisier extern";
}
Ce face acest script:
după ce termina de încărcat fereastra execută funcția "scrieText" (window.onload =
scrieText;)
pasul următor este definirea functie scrieText()ș aceasta se face intre acolade
({ }).Această funcție caută după ID-ul "text1" în documentul HTML și unde îl gasește
înlocuiește conținutul tag-ului respectiv cu textul pe care l-am introdus în ghilimele.
Pentru a face comentarii care să nu fie afișate de browser, cu scopul de a explica codul pentru
alții sau pentru a lăsa marcaje care să-ți aducă aminte anumite lucruri despre script, ai la
dispoziție două modalitați:
comentarii pe o singura linie :
// comentariu pe o singura linie (daca treceti pe linia urmatoare va fi
interpretat de browser si va afisa o eroare)
Una dintre cele mai importante facilități ale acestui limbaj este acela că oferă posibilitatea să
interacționezi cu utilizatorii.
Pentru a crea o alertă care să afișeze un mesaj la care utilizatorii trebuie să răspundă, codul din
fișierul JavaScript este următorul (codul din fișierul HTML îl păstrăm):
alert("Mesaj de intampinare - Bine ati venit!"); // pagina se va incarca
atunci cand se face click pe OK
Condiționaleleoferă posibilitatea de a face să se realizeze anumite lucruri în funcție de anumite
circumstanțe, de exemplu dacă sunt sau nu cookie-urile activate. Putem realiza acest lucru
folosind o structură de forma if then else.
Vom implementa un script care să afișeze un mesaj sau o alertă dacă cookie-urile sunt activate și
altul daca nu sunt activate:
if (/* intre aceste paranteze vom introduce conditia. Aceasta trebuie sa
intoarca valoarea true sau false.*/)
{
/*Aici trebuie introdus codul care sa fie executat daca conditia
din if intoarce valoarea true */
}
else {
/* Codul care este executat daca conditia intoarce valoareafalse.
Conditionala poate fi folosita si fara partea de else*/
}
Iată codul din fișierul JavaScript:
if (navigator.cookieEnabled) {
alert ("cookies activate!!!");
}
else {
alert ("cookies dezactivate");
}
Exemplu - Mai jos se implememtează un script care să ofere utilizatorilor posibilitatea să
confirme sau nu, iar în funcție de răspuns să avem acțiuni diferite, vom folosi un if și vom
schimba doar condiția:
if (confirm("Esti sigur ca aceasta e pagina pe care trebuie sa te afli?"))
{
alert("ai zis ca esti sigur"); }
else {
alert("nu esti sigur");
}
Dacă dorim ca user-ul să introducă răspunsul de la tastatură trebuie să folosim variabile. O
variabilă se definește o dată și poate fi folosită de mai multe ori. Script-ul următor preia
răspunsul introdus de utilizator și poate să-l folosească pentru a-i da acestuia un răspuns de
exemplu.
Pentru ca vizitatorii să poată introduce valori se folosește prompt(), care este din aceeași
categorie cualert() si confirm(), toate solicitând acțiune din partea utilizatorului.
Confirm face parte din aceeași categorie cu alert și prompt, adică sunt ferestre popup. Spre
deosebire de alert, confirm întoarce valoarea true sau false, putând fi astfel folosit în
structuri if, ca în exemplul de mai jos:
var raspuns = prompt("esti sigur ca aici pe aceasta pagina vrei sa
ajungi","");
/* Intre primele ghilimele se introduce intrebarea iar intre celelalte se
introduce un raspuns random. Am lasat liber pentru a nu avea un
raspuns predefinit. */
if (raspuns) { // daca exista vreun raspuns
alert("ai zis: " + raspuns); //concateneaza cele doua siruri
}
else {
alert("nu esti sigur");
}
if (confirm("esti de acord?")) {
alert("Esti de acord")
}
else {
alert ("Nu esti de acord")
};
În cazul în care funcția nu are parametrii numele funcției va trebui urmat de paranteze ( ).
function NumeFunctie()
{
ceva cod
}
Iată un exemplu foarte simplu de funcție fără parametrii:
<html>
<head>
<script type="text/javascript">
function ScrieText()
{
alert("Text de PROBA");
}
</script>
</head>
<body>
<form>
<input type="button" value="Apasa"onclick="ScrieText()" >
</form>
</body>
</html>
În exemplul de mai sus nu s-a mai folosit un fisier JavaScript extern ci s-a definit funcția în zona
de <HEAD> a documentului HTML. La apăsarea butonului se va executa funcția ScrieText.
Înlocuiți codul într-un fișier .txt, schimbați extensia fisierului în .html și observați cum
funcționează.
Funcțiile cu parametri sunt și ele foarte utile. Să presupunem că avem nevoie de o funcție care să
facă anumite operații cu anumiți parametrii. Nu vom scrie funcția de câte ori avem nevoie să
efectuăm operația asupra altor parametrii, ci vom folosi doar o altă adresare a funcției, folosind
parametri.
function prod(a,b)
{
x=a*b;
return x;
}
Funcția implementează produsul a două numere. Ca să atribuim unei variabile produsul a două
numere este suficient să adresăm funcția prod (pe care am definit-o) și să indicăm și cele 2
numere între paranteze.
produs=prod(5,10); // realizeaza produsul celor 2 numere
Cu ajutorul JavaScript putem să facem link-urile mai "destepte", adică să primim mesaje de
avertizare, care să ducă la o pagină sau la alta în fucție de anuite condiții.
Exemplul următor este un exemplu de link "deștept" dar și un bun exercițiu de lucru cu funcții.
Pentru a putea controla un link cu JavaScript trebuie să folosim o metodă de marcare a link-ului
respectiv.
Cel mai uzual folosim un ID și apoi, în JavaScript, folosim document.getElementById("") .
Să zicem că dorim să controlăm un link din următoarea pagină:
<html>
<head><title> exemplu </title>
<script type="text/javascript" src="script.js">
</script>
</head>
<body>
<h1> Exemplu link destept </h1>
<h2 align="center">
<a href="index.html " id="redirect"> Link "destept"
JavaScript </a>
</h2>
</body>
</html>
Link-ului deștept i-am atașat un ID, putând astfel să-l folosim în fișierul JavaScript. Vom încerca
să controlăm accesul la pagina spre care face link-ul trimitere. Codul din fișierul script.Js:
window.onload = functieI; /* Dupa ce se incarca pagina se trimite la
functia functieI pe care o vom defini mai jos in script*/
function functieI() {
document.getElementById("redirect").onclick = controlClick; /* cauta
in
document elementul care are id-ul redirect, actiunea este onclick (cand
se face
click pe elementul respectiv) si trimite la functia controlClick */
}
function controlClick() {
alert("Link controlat!! Atentie!!");
return false; /* nu ne lasa sa mergem mai departe. Daca
puneam return true ne
lasa sa trecem la pagina la care trimite link-ul */
}
Dacă dorim ca utilizatorii care au JS activat să ajungă pe o pagină și cei care l-au dezactivat pe
altă pagină cam asta trebuie să facem:
window.onload = functieI;
function functieI() {
document.getElementById("redirect").onclick = controlClick;}
function controlClick() {
window.location = "paginajs.html";
return false;
}
Cei care au JS activat vor fi directionați de către link pe pagina paginajs.html iar cei care nu au
JavaScript activat vor ajunge pe pagina care este trecuta în HTML, adica index.html. Dacă în
browser nu este JavaScript activat sau nu este suportat, acesta nu va putea să interpreteze codul
JS și-l va executa doar pe cel HTML.
Un alt exemplu util despre care trebuie discutat este cel în care dacă doriți să primiți mesaj de
avertizare atunci când se face click pe un link care nu duce la o pagina de pe domeniul vostru. În
acset caz vom proceda astfel:
Fisierul HTML (s-a schimbat doar link-ul):
<html>
<head><title> exemplu </title>
<script type="text/javascript" src="script.js">
</script>
</head>
<body>
<h1> Exemplu link destept </h1>
<h2 align="center">
<a href="www.google.com" id="redirect"> Link "destept" JavaScript
</a>
</h2>
</body>
</html>
Fișierul JavaScript:
window.onload = functieI;
function functieI() {
document.getElementById("redirect").onclick = controlClick;}
function controlClick() {
if(this.toString().indexOf("etutoriale") < 0) {
alert("Nu suntem responsabili de continutul acestui site. Aceasta
pagina este
in afara domeniului nostru!!");
}
}
După cum se poate observă, în acest exemplu au apărut multe noutăți. Cea mai importantă dintre
ele ar fi cuvântul cheie thiscare depinde de context. De obicei se referă la un obiect în funcție de
metoda care apelează funcția sau structura în care intră this. În cazul nostru se referă la un link și
ne dăm seama de acest lucru deoarece funcția este apelată de onclick, care se aplică link-ului.
<input type="radio" name="Buton radio test"
onClick="alert(this.name)">
apăsați pe butonul radio să vedeți efectul
<script type="text/javascript">
function aratacod(e){
var unicode=e.keyCode? e.keyCode : e.charCode
alert("codul tastei este:" + unicode)
}
</script>
<form>
<input type="text" size="2" maxlength="1"
onkeyup="aratacod(event); this.select()" />
</form>
<script type="text/javascript">
function limitarelungime(obj, length){
var lungime=length
if (obj.value.length>lungime)
obj.value=obj.value.substring(0, lungime)
}
</script>
introduceti textul aici (lungimea maxima e de 20 de caractere):
<form>
<textarea onkeyup="return limitarelungime(this, 20)" style="width:
300px; height: 40px"></textarea>
</form>
Exemplu - validare număr de telefon
<script type="text/javascript">
function numere(e){
var unicode=e.charCode? e.charCode : e.keyCode
if (unicode!=8){ //daca tasta apasata nu e backspace
if (unicode<48||unicode>57) //si nu e nici numar
return false //nu se poate apasa
}
}
function limitarelungime(obj, length){
var lungime=length
if (obj.value.length>lungime)
obj.value=obj.value.substring(0, lungime)
}
</script>
introduceti numarul de telefon (lungimea maxima e de 10 de
caractere):
<form>
<textarea onkeypress="return numere(event)" onkeyup="return
limitarelungime(this, 10)" style="width: 300px; height:
25px"></textarea>
</form>
Exemplu - validare e-mail
Pentru validare e-mail se folosesc funcțiile javascript: evalid() si everif(). Prima verifică dacă
s-a scris ceva în campul de e-mail sau dacă acel câmp a rămas gol.A doua funcție verifică dacă
textul introdus are formatul tipic unei adrese de email: daca contine @ , daca are cel puțin un
punct, dacă punctul este plasat imediat inaintea lui @ sau imediat dupa el sau dacă conține mai
mult de doua caractere @ .
if ((emailID.value==null)||(emailID.value=="")){
alert("Va rog sa introduceti o adresa de email")
emailID.focus()
return false
}
if (everif(emailID.value)==false){
emailID.value=""
emailID.focus()
return false
}
return true
}
</script>
<form name="eFormular" method="post" action="#"
onSubmit="return evalid()">
<p>Enter an Email Address :
<input type="text" name="txtEmail">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
<script language="JavaScript">
function check_buttons()
{
for(i=0; i<4; i++)
for (j=0; j<4; j++)
{
if(document.form1.intr1[i].checked==true) {
if(document.form1.intr2[j].checked==true) {
document.form1.action="rezultat.php"; } } }
return; }
</script>
<form name="form1" method="post"
onSubmit="javascript:check_buttons();" action="">
1. Cate limbaje de programare cunosti?
<p>
<input type="radio" name="intr1" value="a" >a. Nici unul<br>
<input type="radio" name="intr1" value="b" >b. 1<br>
<input type="radio" name="intr1" value="c" >c. 2<br>
<input type="radio" name="intr1" value="d" >d. 3<br>
</p>
2. De cat timp esti interesat de Web Design?
<p>
<input type="radio" name="intr2" value="a"> a. De cand m-am
nascut<br>
<input type="radio" name="intr2" value="b"> b. De mai mult de 10
ani<br>
<input type="radio" name="intr2" value="c"> c. De mai putin de 10
ani<br>
<input type="radio" name="intr2" value="d"> d. De ieri<br>
</p>
<input type="submit" value="Trimite formularul">
</form>
Exemplu - funcție JavaScript care face mai dificilă copierea continutului paginilor web. Dacă
cel care încearcă să copieze nu are JavaScript activat din browser următoarea funcție nu se va
executa iar drept urmare dreapta click nu va fi dezactivat. Oricum există și CTRL+C .....
Funcția trebuie introdusă între tag-urile <head> .... </head> ale paginii.
<script language=JavaScript>
<!--
var message="Ne cerem scuze dar operatia click-dreapta a fost
dezactivata";
function click(z) {
if (document.all) {
if (event.button == 2) {
alert(message);
return false;
}
}
if (document.layers) {
if (z.which == 3) {
alert(message);
return false;
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;
// -->
</script>
CARUSEL
A.Implementare carusel/slideshow
<div class="mySlides fade">
<div class="numbertext">2 / 3</div>
<img src="img2.jpg" style="width:100%">
<div class="text">Caption Two</div>
</div>
<div class="mySlides fade">
<div class="numbertext">3 / 3</div>
<img src="img3.jpg" style="width:100%">
<div class="text">Caption Three</div>
</div>
Pas 2. Fisier CSS – formatare butoane next si prev, text si buline utilizate in cadrul
caruselului/slideshow-ului
* {box-sizing:border-box}
/* Slideshow container */
.slideshow-container {
max-width: 1000px;
position: relative;
margin: auto;
}
/* Caption text */
.text {
color: #f2f2f2;
font-size: 15px;
padding: 8px 12px;
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
}
/* The dots/bullets/indicators */
.dot {
cursor: pointer;
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease;
}
.active, .dot:hover {
background-color: #717171;
}
/* Fading animation */
.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
}
@-webkit-keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
@keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
Pas 3. JavaScript
var slideIndex = 1;
showSlides(slideIndex);
// Next/previous controls
function plusSlides(n) {
showSlides(slideIndex += n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
}
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {box-sizing: border-box}
body {font-family: Verdana, sans-serif; margin:0}
.mySlides {display: none}
img {vertical-align: middle;}
/* Slideshow container */
.slideshow-container {
max-width: 1000px;
position: relative;
margin: auto;
}
/* Caption text */
.text {
color: #f2f2f2;
font-size: 15px;
padding: 8px 12px;
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
}
/* Number text (1/3 etc) */
.numbertext {
color: #f2f2f2;
font-size: 12px;
padding: 8px 12px;
position: absolute;
top: 0;
}
/* The dots/bullets/indicators */
.dot {
cursor: pointer;
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease;
}
.active, .dot:hover {
background-color: #717171;
}
/* Fading animation */
.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
}
@-webkit-keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
@keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
<div class="slideshow-container">
</div>
<br>
<div style="text-align:center">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
</div>
<script>
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
}
</script>
</body>
</html>
B.Implementare slideshow automat !
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName("mySlides");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
slides[slideIndex-1].style.display = "block";
setTimeout(showSlides, 2000); // Change image every 2 seconds
}
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {box-sizing: border-box;}
body {font-family: Verdana, sans-serif;}
.mySlides {display: none;}
img {vertical-align: middle;}
/* Slideshow container */
.slideshow-container {
max-width: 1000px;
position: relative;
margin: auto;
}
/* Caption text */
.text {
color: #f2f2f2;
font-size: 15px;
padding: 8px 12px;
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
}
/* The dots/bullets/indicators */
.dot {
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease;
}
.active {
background-color: #717171;
}
/* Fading animation */
.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
}
@-webkit-keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
@keyframes fade {
from {opacity: .4}
to {opacity: 1}
}
<h2>Automatic Slideshow</h2>
<p>Change image every 2 seconds:</p>
<div class="slideshow-container">
</div>
<br>
<div style="text-align:center">
<span class="dot"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
<script>
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
setTimeout(showSlides, 2000); // Change image every 2 seconds
}
</script>
</body>
</html>
function plusSlides(n, no) {
showSlides(slideIndex[no] += n, no);
}
function showSlides(n, no) {
var i;
var x = document.getElementsByClassName(slideId[no]);
if (n > x.length) {slideIndex[no] = 1}
if (n < 1) {slideIndex[no] = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex[no]-1].style.display = "block";
}
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {box-sizing: border-box}
.mySlides1, .mySlides2 {display: none}
img {vertical-align: middle;}
/* Slideshow container */
.slideshow-container {
max-width: 1000px;
position: relative;
margin: auto;
}
<div class="mySlides1">
<img src="img_snow_wide.jpg" style="width:100%">
</div>
<div class="mySlides1">
<img src="img_mountains_wide.jpg" style="width:100%">
</div>
<p>Slideshow 2:</p>
<div class="slideshow-container">
<div class="mySlides2">
<img src="img_band_chicago.jpg" style="width:100%">
</div>
<div class="mySlides2">
<img src="img_band_la.jpg" style="width:100%">
</div>
<div class="mySlides2">
<img src="img_band_ny.jpg" style="width:100%">
</div>
<script>
var slideIndex = [1,1];
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);
</body>
</html>
PARALAX
EFECT PARALLAX
Pentru implementarea acestui efect se utilizeaza un container si se adauga o imagine acestui
container cu o anumita inaltime, apoi se utilizeaza optiunea background-attachment:fixed pentru
a crea efectul parallax. Celelalte proprietati ale background-ului sunt utilizate pentru a centra si
scala imaginea.
P1.Exemplu cu pixeli
<style>
.parallax {
/* The image used */
background-image: url("img_parallax.jpg");
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.parallax {
/* The image used */
background-image: url("img_parallax.jpg");
<p>Scroll Up and Down this page to see the parallax scrolling effect.</p>
<div class="parallax"></div>
<div style="height:1000px;background-color:white;font-size:32px">
Scroll Up and Down this page to see the parallax scrolling effect.
This div is just here to enable scrolling.
Tip: Try to remove the background-attachment property to remove the scrolling effect.
</div>
</body>
</html>
body, html {
height: 100%;
}
.parallax {
/* The image used */
background-image: url("img_parallax.jpg");
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body, html {
height: 100%;
}
.parallax {
/* The image used */
background-image: url('img_parallax.jpg');
/* Full height */
height: 100%;
<div class="parallax"></div>
<div style="height:1000px;background-color:yellow;font-size:28px">
Scroll Up and Down this page to see the parallax scrolling effect.
This div is just here to enable scrolling.
Tip: Try to remove the background-attachment property to remove the scrolling effect.
</div>
<div class="parallax"></div>
</body>
</html>
P3. Eliminare efect parallax pentru telefoane mobile & tablete
COD SURSA
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body, html {
height: 100%;
}
.parallax {
/* The image used */
background-image: url('img_parallax.jpg');
/* Full height */
height: 100%;
/* Turn off parallax scrolling for tablets and phones. Increase the pixels if needed */
@media only screen and (max-device-width: 1366px) {
.parallax {
background-attachment: scroll;
}
}
</style>
</head>
<body>
<p>In this example we have turned off parallax scrolling for mobile devices. It works as
expected on all desktop screens sizes.</p>
<p>Scroll Up and Down this page to see the parallax scrolling effect.</p>
<div class="parallax"></div>
<div style="height:1000px;background-color:red;font-size:36px">
This div is just here to enable scrolling.
Tip: Try to remove the background-attachment property to remove the scrolling effect.
</div>
<div class="parallax"></div>
</body>
</html>