Blog: Motyw graficzny
Opublikowano: 04.07.2023 - tagi: Blog
Dodałem możliwość zmiany motywu graficznego bloga na: jasny/ciemny.
Dodatkowo zmieniłem też czcionkę na tekst: teraz jest szeryfowa.
Opublikowano: 04.07.2023 - tagi: Blog
Dodałem możliwość zmiany motywu graficznego bloga na: jasny/ciemny.
Dodatkowo zmieniłem też czcionkę na tekst: teraz jest szeryfowa.
Opublikowano: 30.06.2023 - tagi: Podsumowanie Czerwiec Blog 2023
W czerwcu opublikowałem 3 wpisy:
JavaScript
Przeczytałem jedną książkę:
Przesłuchałem trzy audiobooki:
Opublikowano: 13.06.2023 - tagi: JavaScript Motyw Kolor CSS
Wiele systemów operacyjnych pozwala użytkownikowi na wybór motywu graficznego. Na przykład: jasny lub ciemny.
Istnieje możliwość pobrania informacji, jaki motyw graficzny preferuje użytkownik odwiedzający Twoją stronę internetową. Dzięki tej informacji będziesz mógł ustawić taki motyw także na stronie WWW.
Żeby sprawdzić, z jakiego motywu graficznego korzysta użytkownik, należy sprawdzić właściwość:
prefers-color-scheme
Dodatkowo można się tego dowiedzieć na dwa sposoby! Za pomocą CSS lub JavaScript
// domyślny motyw - jasny
body {
--bkg-color: white;
--text-color: black;
}
@media (prefers-color-scheme: dark) {
body {
--bkg-color: black;
--text-color: white;
}
}
body {
background-color: var(--bkg-color);
color: var(--text-color);
}
CSS:
// domyślny motyw - jasny
body {
--bkg-color: white;
--text-color: black;
}
body.dark {
--bkg-color: black;
--text-color: white;
}
body {
background-color: var(--bkg-color);
color: var(--text-color);
}
JavaScript:
const darkTheme = window.matchMedia('(prefers-color-scheme: dark)');
if (darkTheme.matches) { // czy użytkownik używa w systemie czarnego motywu?
document.body.classList.add('dark');
} else {
document.body.classList.remove('dark');
}
Opublikowano: 08.06.2023 - tagi: Canvas JavaScript Ruch Obrót Myszka
Żeby obrócić obiekt w kierunku, w którym znajduje się kursor myszy, należy obliczyć kąt. Kąt, który znajduje się pomiędzy: dodatnią osią X i linią prostą, którą tworzą dwa punkty: pierwszy punkt to (0, 0), a drugi to: podany (x, y).
W poniższym przykładzie drugi punkt jest obliczany, w następujący sposób:
const y = rect.y - mouse.y + canvasRect.top;
const x = rect.x - mouse.x + canvasRect.left;
gdzie:
rect - To pozycja obracanego obiektu mouse - To pozycja kursora myszy canvasRect - To pozycja płótna
Mając już obliczony punkt, można pobrać informacje o kącie, o jaki powinien zostać obrócony obiekt:
angle = Math.atan2(y, x);
Kąt zwracany jest w radianach.
Demo znajdziesz tutaj
HTML:
<canvas id="canvas" width="800" height="600"></canvas>
JavaScript
let angle = 0;
const step = 15;
const mouse = { x: 0, y: 0 };
const canvas = document.getElementById('canvas');
const context = canvas.getContext("2d");
const canvasRect = canvas.getBoundingClientRect();
const rect = {
width: 50,
height: 50,
x: context.canvas.width / 2,
y: context.canvas.height / 2
}
document.addEventListener('mousemove', (e) => {
mouse.x = e.clientX;
mouse.y = e.clientY;
const y = rect.y - mouse.y + canvasRect.top;
const x = rect.x - mouse.x + canvasRect.left;
angle = Math.atan2(y, x);
});
document.addEventListener('keydown', (e) => {
rect.x += -step * Math.cos(angle);
rect.y += -step * Math.sin(angle);
});
const render = () => {
context.fillStyle = '#000';
context.fillRect(0, 0, context.canvas.width, context.canvas.height);
context.fillStyle = '#ff0000';
context.save();
context.translate(rect.x, rect.y)
context.rotate(angle);
context.fillRect(-rect.width / 2, -rect.height / 2, rect.width, rect.height);
context.restore();
requestAnimationFrame(render);
}
render();
Opublikowano: 01.06.2023 - tagi: JavaScript Canvas Mysz Współrzędne
Żeby pobrać pozycję kursora myszy, w obrębie Canvas potrzebujesz dwa rodzaje informacji: pozycję kursora i pozycję płótna.
Pozycja (0, 0) oznacza lewy górny róg płótna.
Przykład działającego przykładu znajdziesz tutaj
HTML:
<div>
<strong>X: <span id="x"></span></strong>
<br>
<strong>Y: <span id="y"></span></strong>
</div>
<br>
<canvas id="canvas" width="800" height="600"></canvas>
JavaScript:
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
const x = document.getElementById('x');
const y = document.getElementById('y');
context.fillStyle = '#000';
context.fillRect(0, 0, context.canvas.width, context.canvas.height);
canvas.addEventListener('mousemove', (e) => {
const canvasRect = canvas.getBoundingClientRect();
const posX = Math.round(e.clientX - canvasRect.left);
const posY = Math.round(e.clientY - canvasRect.top);
x.innerHTML = posX;
y.innerHTML = posY;
});
Mając informację o pozycji kursora: e.clientX i e.clientY oraz pozycji płótna: canvasRect.left i canvasRect.top możemy obliczyć pozycję kursora w Canvas. Zmienne: posX i posY.