Quantcast
Channel: javascript – Webmaster Blog
Viewing all articles
Browse latest Browse all 6

[html5] Tło strony na pełnym ekranie

$
0
0

Specyficzne projekty wymagają specyficznych rozwiązań. Jednym z nich jest konieczność uzyskania obrazkowego tła strony na całym ekranie, niezależnie od rozdzielczości ekranu.
Z pomocą przychodzi HTML5, a właściwie CANVAS (którego możliwości sprawdzaliśmy np. tutaj: [canvas] Gradient HSV – pełen zakres kolorów

Schemat działania jest następujący:
1. Tworzymy element CANVAS
2. Wczytujemy grafikę/obrazek, który chcemy umieścić jako tło strony
3. Importujemy grafikę do elementu CANVAS, nadając mu wymiary ekranu
4. Exportujemy element CANVAS do elementuw sekcję: background-image.

W pierwszej kolejności tworzymy element CANVAS (np. na końcu strony, zaraz przed </body>):

<canvas id="canvas" style="display:none;"></canvas>

W JavaScript wczytujemy utworzony CANVAS oraz obrazek tła strony (bg.jpg). Po jego załadowaniu skalujemy go do wymiarów ekranu (screen.width, screen.height), przypisując do CANVAS (drawImage). Na koniec exportujemy otrzymany obrazek jako tło strony (document.body.style.backgroundImage), do czego najłatwiej wykorzystać funkcję “toDataURL“, która zamieni obraz do postaci binarnej (data:image/jpeg;base64,…).

var can = document.getElementById('canvas');
var ctx = can.getContext('2d');
var img = new Image();
img.onload = function(){
    can.width = screen.width; // pobieramy szerokość ekranu
    can.height = screen.height;  // pobieramy wysokość ekranu
    ctx.drawImage(img, 0, 0, can.width, can.height);
    document.body.style.backgroundImage = 'url('+can.toDataURL('image/jpeg')+')';
}
img.src = 'bg.jpg'; // wczytanie grafiki

Gotowy kod całościowo:

<html>
<style type="text/css">
body{ background: white no-repeat; }
</style>
<body>
Full screen background image: <br> <img src="bg.jpg">
<canvas id="canvas" style="display:none;"></canvas>
<script type="text/javascript">
var can = document.getElementById('canvas');
var ctx = can.getContext('2d');
var img = new Image();
img.onload = function(){
    can.width = screen.width; // pobieramy szerokość ekranu
    can.height = screen.height;  // pobieramy wysokość ekranu
    ctx.drawImage(img, 0, 0, can.width, can.height);
    document.body.style.backgroundImage = 'url('+can.toDataURL('image/jpeg')+')';
}
img.src = 'bg.jpg'; // wczytanie grafiki
</script>
</body>
</html>

Demo: https://webowiec.net/blog/demo/bg.html


Viewing all articles
Browse latest Browse all 6

Latest Images

Trending Articles


Słowacki Juliusz - Lilla Weneda [Słuchowisko PL]


Grey Loren Zane - Stara kopalnia [AUDIOBOOK Pl]


Założenia nlp update ORMG 2012


Xiegu x6100


Haki


WWE 2K18 Spolszczenie


Czy to rak? (1 odpowiedz)


Jaki olej do romet ws 50?


BattleTech - Deluxe Edition v.1.9.1 (2018) / ElAmigos


Przyczynek do biografii Doboszyńskiego