$lang['tuto'] = "ಟ್ಯುಟೋರಿಯಲ್"; ?> ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಅನುವಾದ ಮತ್ತು ಸ್ಕೇಲ್‌ನೊಂದಿಗೆ ಸರಿಯಾದ ಡ್ರ್ಯಾಗ್ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗುತ್ತಿದೆ

Temp mail SuperHeros
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಅನುವಾದ ಮತ್ತು ಸ್ಕೇಲ್‌ನೊಂದಿಗೆ ಸರಿಯಾದ ಡ್ರ್ಯಾಗ್ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗುತ್ತಿದೆ
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಅನುವಾದ ಮತ್ತು ಸ್ಕೇಲ್‌ನೊಂದಿಗೆ ಸರಿಯಾದ ಡ್ರ್ಯಾಗ್ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗುತ್ತಿದೆ

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಸ್ಕೇಲಿಂಗ್‌ನೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು

ಮೃದುವಾದ ಮತ್ತು ಸ್ಪಂದಿಸುವ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಅನುಭವವನ್ನು ನಿರ್ಮಿಸುವುದು ಸವಾಲಾಗಿರಬಹುದು, ವಿಶೇಷವಾಗಿ ಸ್ಕೇಲಿಂಗ್‌ನಂತಹ ರೂಪಾಂತರಗಳು ಒಳಗೊಂಡಿರುವಾಗ. ನೀವು ಬಳಸುತ್ತಿದ್ದರೆ ರೂಪಾಂತರ: ಅನುವಾದ () ಅಂಶಗಳನ್ನು ಸರಿಸಲು ಆಸ್ತಿ, ಅಂಶಕ್ಕೆ ಮಾಪಕವನ್ನು ಸೇರಿಸುವುದರಿಂದ ಅದರ ಗಾತ್ರ ಮತ್ತು ಸ್ಥಾನದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ, ಇದು ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಮುರಿಯಲು ಕಾರಣವಾಗುತ್ತದೆ.

ಈ ಸನ್ನಿವೇಶದಲ್ಲಿ, ಮೌಸ್‌ನ ಚಲನೆಯ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಥಾನವನ್ನು ಸರಿಹೊಂದಿಸುವುದು ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶವನ್ನು ನೀಡುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಸ್ಕೇಲ್ಡ್ ಅಂಶವು ಅದರ ಮೂಲ ಗಾತ್ರದಲ್ಲಿ ಚಲಿಸುವುದಿಲ್ಲ. ಇದು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವಾಗ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ ಅಂಶದ ಸರಿಯಾದ ಸ್ಥಾನ ಎಳೆತದ ಸಮಯದಲ್ಲಿ.

ನೀವು ಕಸ್ಟಮ್ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಲೈಬ್ರರಿಯನ್ನು ನಿರ್ಮಿಸುತ್ತಿರಲಿ ಅಥವಾ ಈ ಕಾರ್ಯವನ್ನು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ ಸಂಯೋಜಿಸುತ್ತಿರಲಿ, ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಅನ್ವಯಿಸಿದಾಗ ಸ್ಥಾನಗಳನ್ನು ಸರಿಯಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು ಹೇಗೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ನಿಖರವಾದ ಅಂಶ ನಿಯೋಜನೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಸ್ಕೇಲ್ ಮೌಲ್ಯದ ಅಂಶಕ್ಕೆ ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ.

ಡ್ರ್ಯಾಗ್ ಮಾಡುವಾಗ ಅಂಶದ ಸರಿಯಾದ ಸ್ಥಾನವನ್ನು ಹೇಗೆ ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು ಎಂಬುದನ್ನು ಈ ಲೇಖನವು ವಿವರಿಸುತ್ತದೆ ಅನುವಾದಿಸಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿನ ವಿಧಾನ, ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ. ನೀವು ಅಂಶದ ಪ್ರಮಾಣಕ್ಕೆ ಸರಿಹೊಂದಿಸಬೇಕಾದ ಹಂತಗಳು ಮತ್ತು ಸೂತ್ರಗಳ ಮೂಲಕವೂ ನಾವು ಹೋಗುತ್ತೇವೆ ಮತ್ತು ಸುಗಮ ಡ್ರ್ಯಾಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುತ್ತೇವೆ.

ಆಜ್ಞೆ ಬಳಕೆಯ ಉದಾಹರಣೆ
getBoundingClientRect() ಈ ವಿಧಾನವು ವ್ಯೂಪೋರ್ಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಅಂಶದ ಗಾತ್ರ ಮತ್ತು ಸ್ಥಾನವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಎಳೆಯಲಾದ ಅಂಶದ ನಿಖರವಾದ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಪಡೆಯಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಪ್ರಮಾಣದ ರೂಪಾಂತರಗಳನ್ನು ಅನ್ವಯಿಸಿದಾಗ.
addEventListener('pointerdown') ಒಂದು ಅಂಶಕ್ಕೆ ನಿರ್ದಿಷ್ಟ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಲಗತ್ತಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಎಲಿಮೆಂಟ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ ಅಥವಾ ಸ್ಪರ್ಶಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರು ಡ್ರ್ಯಾಗ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ ಪತ್ತೆಹಚ್ಚಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
setProperty() CSS ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನವೀಕರಿಸಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಯಲ್ಲಿ, ಸ್ಕೇಲ್ ಅನ್ನು ಆಧರಿಸಿ ಡ್ರ್ಯಾಗ್ ಸ್ಥಾನವನ್ನು ನವೀಕರಿಸಲು ಇದು ಕಸ್ಟಮ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ --x ಮತ್ತು --y.
removeEventListener() ಈ ವಿಧಾನವು ಹಿಂದೆ ಸೇರಿಸಲಾದ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಡ್ರ್ಯಾಗ್ ಮುಗಿದ ನಂತರ ಸ್ವಚ್ಛಗೊಳಿಸಲು, ಮೆಮೊರಿ ಸೋರಿಕೆಯನ್ನು ತಡೆಗಟ್ಟಲು ಪಾಯಿಂಟರ್‌ಮೂವ್ ಮತ್ತು ಪಾಯಿಂಟರ್‌ಅಪ್ ಕೇಳುಗರನ್ನು ತೆಗೆದುಹಾಕಲು ಇದು ಅತ್ಯಗತ್ಯ.
clientX / clientY ಈ ಗುಣಲಕ್ಷಣಗಳು ವ್ಯೂಪೋರ್ಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಮೌಸ್ ಪಾಯಿಂಟರ್‌ನ X ಮತ್ತು Y ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಡ್ರ್ಯಾಗ್ ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ಕರ್ಸರ್‌ನ ಸ್ಥಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಅವು ನಿರ್ಣಾಯಕವಾಗಿವೆ.
scale() ಇದು CSS ರೂಪಾಂತರ ಕಾರ್ಯದ ಭಾಗವಾಗಿದೆ. ಡ್ರ್ಯಾಗ್‌ನ ಸಮಯದಲ್ಲಿ ಸರಿಯಾದ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಖಾತ್ರಿಪಡಿಸುವ ಮೂಲಕ, ಟ್ರಾನ್ಸ್‌ಲೇಟ್‌ನಂತಹ ಇತರ ರೂಪಾಂತರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹಾಗೆಯೇ ಇರಿಸಿಕೊಂಡು ಎಳೆದ ಅಂಶದ ಗಾತ್ರವನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ.
console.assert() ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಘಟಕ ಪರೀಕ್ಷೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಸ್ಕೇಲಿಂಗ್‌ನೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಈವೆಂಟ್‌ನ ನಂತರ ಅನುವಾದಿತ ಸ್ಥಾನವನ್ನು ಸರಿಯಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವಂತಹ ಕೆಲವು ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಇದು ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ.
transform ಈ CSS ಆಸ್ತಿಯು ಒಂದು ಅಂಶಕ್ಕೆ ಬಹು ರೂಪಾಂತರ ಕಾರ್ಯಗಳನ್ನು (ಅನುವಾದ ಮತ್ತು ಪ್ರಮಾಣದಂತಹ) ಅನ್ವಯಿಸುತ್ತದೆ. ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಸ್ಕೇಲಿಂಗ್ ಸಮಯದಲ್ಲಿ ಅಂಶದ ದೃಶ್ಯ ಸ್ಥಾನ ಮತ್ತು ಗಾತ್ರವನ್ನು ನವೀಕರಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಅನುವಾದ ಮತ್ತು ಸ್ಕೇಲ್‌ನೊಂದಿಗೆ ಎಲಿಮೆಂಟ್ ಸ್ಥಾನವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಬಳಸುವಾಗ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಕಾರ್ಯನಿರ್ವಹಣೆಯಲ್ಲಿ ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿವೆ ಅನುವಾದಿಸಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿನ ವಿಧಾನ, ವಿಶೇಷವಾಗಿ ಅಂಶವು ಸ್ಕೇಲಿಂಗ್ ರೂಪಾಂತರವನ್ನು ಅನ್ವಯಿಸಿದಾಗ. ಮೊದಲ ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಕೆದಾರರ ಡ್ರ್ಯಾಗ್ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಪಾಯಿಂಟರ್ ಈವೆಂಟ್‌ಗಳನ್ನು ಆಲಿಸುತ್ತದೆ. ಬಳಸುವ ಮೂಲಕ getBoundingClientRect() ವಿಧಾನ, ಇದು ಪರದೆಯ ಮೇಲೆ ಅಂಶದ ಆರಂಭಿಕ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ವ್ಯೂಪೋರ್ಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಅಂಶವನ್ನು ಎಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಇದು ಅತ್ಯಗತ್ಯವಾಗಿರುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಸ್ಕೇಲ್ 1 ಆಗಿಲ್ಲದಿದ್ದಾಗ, ಅಂಶವು ಅದರ ಮೂಲ ಗಾತ್ರಕ್ಕಿಂತ ವಿಭಿನ್ನವಾಗಿ ವರ್ತಿಸುವಂತೆ ಮಾಡುತ್ತದೆ.

ಮುಖ್ಯ ಕಾರ್ಯವನ್ನು ಒಳಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಡ್ರ್ಯಾಗ್ ಎಲಿಮೆಂಟ್ ಕಾರ್ಯ, ಇದು ಚಲನೆಯ ಡೆಲ್ಟಾವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಅಂಶವು ವಿಸ್ತರಿಸಿದಾಗ ಅಥವಾ ಕುಗ್ಗಿದಾಗಲೂ ದೂರವನ್ನು ನಿಖರವಾಗಿ ಮ್ಯಾಪ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಪಾಯಿಂಟರ್‌ನ ಚಲನೆಯನ್ನು ಮಾಪಕ ಅಂಶದಿಂದ ಭಾಗಿಸುವ ಮೂಲಕ ಡ್ರ್ಯಾಗ್ ಚಲನೆಯನ್ನು ಸರಿಹೊಂದಿಸಲಾಗುತ್ತದೆ. ಡ್ರ್ಯಾಗ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಮಯದಲ್ಲಿ ಅಂಶವು "ಜಂಪಿಂಗ್" ಅಥವಾ ತಪ್ಪಾಗಿ ಇಡುವುದನ್ನು ತಡೆಯಲು ಈ ವಿಧಾನವು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಟ್ರಾನ್ಸ್‌ಲೇಟ್ ಮತ್ತು ಸ್ಕೇಲ್ ಫಂಕ್ಷನ್‌ಗಳನ್ನು ಟ್ಯಾಂಡೆಮ್‌ನಲ್ಲಿ ಬಳಸಿಕೊಂಡು ಟ್ರಾನ್ಸ್‌ಫಾರ್ಮ್ ಪ್ರಾಪರ್ಟಿ ಮೂಲಕ ಸ್ಕ್ರಿಪ್ಟ್ ನಂತರ ಈ ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ. ರೂಪಾಂತರಗೊಂಡ ಗಾತ್ರವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವಾಗ ಅಂಶವು ದ್ರವವಾಗಿ ಚಲಿಸುತ್ತದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ತಿಳಿಸಲಾದ ಹೆಚ್ಚುವರಿ ಸವಾಲು ಎಂದರೆ ಡ್ರ್ಯಾಗ್ ಈವೆಂಟ್ ಅನ್ನು ಸರಿಯಾಗಿ ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು. ಡ್ರ್ಯಾಗ್ ಕ್ರಿಯೆಯು ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಬಳಸಿಕೊಂಡು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ EventListener ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಮೆಮೊರಿ ಸೋರಿಕೆ ಮತ್ತು ಅನಪೇಕ್ಷಿತ ನಡವಳಿಕೆಯನ್ನು ತಪ್ಪಿಸಲು. ಸ್ಕ್ರಿಪ್ಟ್ ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ, ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಉಪಯುಕ್ತತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಎಂದು ಇದು ಖಾತರಿಪಡಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ಇದರ ಬಳಕೆ ಸೆಟ್ ಪ್ರಾಪರ್ಟಿ() ವಿಧಾನವು CSS ವೇರಿಯೇಬಲ್‌ಗಳಿಗೆ ಡೈನಾಮಿಕ್ ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ಹಾರ್ಡ್‌ಕೋಡಿಂಗ್ ಮೌಲ್ಯಗಳಿಲ್ಲದೆ ಡ್ರ್ಯಾಗ್ ಸಂವಹನಗಳನ್ನು ಹೇಗೆ ಶೈಲಿಯಲ್ಲಿ ಅಥವಾ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು ಎಂಬುದರ ನಮ್ಯತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.

ಪರ್ಯಾಯ ಪರಿಹಾರದಲ್ಲಿ, ಇದರೊಂದಿಗೆ ಘಟಕ ಪರೀಕ್ಷೆಗಳ ಬಳಕೆ console.assert() ಅನುಷ್ಠಾನಕ್ಕೆ ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆಯ ಹೆಚ್ಚುವರಿ ಪದರವನ್ನು ಸೇರಿಸುತ್ತದೆ. ಲೆಕ್ಕಾಚಾರಗಳು ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಸ್ಕೇಲ್ಡ್ ಪರಿಸರದಲ್ಲಿ. ಪೂರ್ವನಿರ್ಧರಿತ ಪರಿಸ್ಥಿತಿಗಳ ವಿರುದ್ಧ ಡ್ರ್ಯಾಗ್ ಕಾರ್ಯಾಚರಣೆಯ ಫಲಿತಾಂಶವನ್ನು ಪರೀಕ್ಷಿಸುವ ಮೂಲಕ, ಸ್ಕ್ರಿಪ್ಟ್ ಏಕರೂಪವಲ್ಲದ ಸ್ಕೇಲಿಂಗ್ ಅಥವಾ ವಿಭಿನ್ನ ಪೂರ್ವನಿಗದಿ ಆಫ್‌ಸೆಟ್‌ಗಳಂತಹ ಎಡ್ಜ್ ಕೇಸ್‌ಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಡ್ರ್ಯಾಗ್-ಅಂಡ್-ಡ್ರಾಪ್ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ದೃಢತೆಯನ್ನು ಸುಧಾರಿಸುವುದಲ್ಲದೆ ಕೋಡ್ ಅನ್ನು ಹೆಚ್ಚು ಮಾಡ್ಯುಲರ್ ಮತ್ತು ವಿವಿಧ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮರುಬಳಕೆ ಮಾಡುವಂತೆ ಮಾಡುತ್ತದೆ.

JavaScript ನೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಸ್ಕೇಲ್ ಸಮಯದಲ್ಲಿ ಎಲಿಮೆಂಟ್ ಸ್ಥಾನವನ್ನು ನಿರ್ವಹಿಸುವುದು

ಈ ಪರಿಹಾರವು ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ನಿರ್ವಹಣೆಗಾಗಿ ಶುದ್ಧ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ರೂಪಾಂತರ ಮತ್ತು ಅನುವಾದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಂಶವನ್ನು ಸ್ಕೇಲಿಂಗ್ ಮಾಡುವಾಗ ಸ್ಥಾನಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.

let startX, startY, initialX, initialY, scale = 1;
const draggable = document.getElementById('draggable');
draggable.addEventListener('pointerdown', startDrag);

function startDrag(e) {
  startX = e.clientX;
  startY = e.clientY;
  const rect = draggable.getBoundingClientRect();
  initialX = rect.left;
  initialY = rect.top;
  document.addEventListener('pointermove', dragElement);
  document.addEventListener('pointerup', stopDrag);
}

function dragElement(e) {
  const deltaX = (e.clientX - startX) / scale;
  const deltaY = (e.clientY - startY) / scale;
  draggable.style.transform = `translate(${initialX + deltaX}px, ${initialY + deltaY}px) scale(${scale})`;
}

function stopDrag() {
  document.removeEventListener('pointermove', dragElement);
  document.removeEventListener('pointerup', stopDrag);
}

ಎಲಿಮೆಂಟ್ ಸ್ಕೇಲಿಂಗ್ಗಾಗಿ ಸಿಎಸ್ಎಸ್ ಮತ್ತು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುವ ಪರ್ಯಾಯ ಪರಿಹಾರ

ಈ ಪರ್ಯಾಯ ವಿಧಾನವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟ CSS ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದು ಅಂಶವನ್ನು ಸ್ಕೇಲ್ ಮಾಡಿದಾಗ ಅದರ ಸ್ಥಾನವನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಹೊಂದಿಸುತ್ತದೆ.

let startX, startY, initialX, initialY, scale = 1;
const draggable = document.getElementById('draggable');
draggable.addEventListener('pointerdown', startDrag);

function startDrag(e) {
  startX = e.clientX;
  startY = e.clientY;
  const rect = draggable.getBoundingClientRect();
  initialX = rect.left / scale;
  initialY = rect.top / scale;
  document.addEventListener('pointermove', dragElement);
  document.addEventListener('pointerup', stopDrag);
}

function dragElement(e) {
  const deltaX = (e.clientX - startX) / scale;
  const deltaY = (e.clientY - startY) / scale;
  draggable.style.setProperty('--x', initialX + deltaX + 'px');
  draggable.style.setProperty('--y', initialY + deltaY + 'px');
}

function stopDrag() {
  document.removeEventListener('pointermove', dragElement);
  document.removeEventListener('pointerup', stopDrag);
}

ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಸ್ಕೇಲ್ ಕಾರ್ಯವನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಘಟಕ ಪರೀಕ್ಷೆಗಳು

ಈ ವಿಭಾಗವು ಸ್ಕೇಲ್ಡ್ ಅಂಶಗಳೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಕಾರ್ಯವು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು JavaScript ಅನ್ನು ಬಳಸಿಕೊಂಡು ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.

function testDragWithScale() {
  const element = document.createElement('div');
  element.style.width = '100px';
  element.style.height = '100px';
  element.style.transform = 'scale(2)';
  document.body.appendChild(element);
  startDrag({clientX: 100, clientY: 100});
  dragElement({clientX: 200, clientY: 200});
  const computedTransform = getComputedStyle(element).transform;
  console.assert(computedTransform.includes('translate(50px, 50px)'), 'Position adjusted correctly with scale');
}

testDragWithScale();

ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಕಾರ್ಯದಲ್ಲಿ ಎಲಿಮೆಂಟ್ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು

ದೃಢವಾದ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಬಂದಾಗ, ಸ್ಕೇಲಿಂಗ್‌ನಂತಹ ರೂಪಾಂತರಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ವಿಶಿಷ್ಟವಾಗಿ, ಒಂದು ಅಂಶವನ್ನು ಬಳಸಿ ಎಳೆದಾಗ ಅನುವಾದಿಸಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದನ್ನು ಮೌಸ್‌ನ ನಿರ್ದೇಶಾಂಕಗಳ ಆಧಾರದ ಮೇಲೆ ಸರಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಅಂಶವನ್ನು ಬಳಸಿಕೊಂಡು ಅಳೆಯಿದಾಗ ರೂಪಾಂತರ: ಪ್ರಮಾಣದ () ಆಸ್ತಿ, ಅದರ ಗಾತ್ರ ಮತ್ತು ಚಲನೆಯ ಬದಲಾವಣೆಯು ಮೂಲ ಆಯಾಮಗಳಿಗೆ ಹೋಲಿಸಿದರೆ. ಸರಿಯಾದ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಕೀಲಿಯು ಸ್ಥಾನವು ಸ್ಕೇಲಿಂಗ್ ಅಂಶಕ್ಕೆ ಸರಿಹೊಂದಿಸಲ್ಪಟ್ಟಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಪ್ರಮಾಣವನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದು ತಪ್ಪಾದ ಸ್ಥಾನೀಕರಣ ಮತ್ತು ಅನಿಯಮಿತ ನಡವಳಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ.

ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು, ನೀವು ಅಂಶವು ಚಲಿಸುವ ದೂರವನ್ನು ಪ್ರಮಾಣದ ಮೌಲ್ಯದಿಂದ ಭಾಗಿಸಬೇಕಾಗುತ್ತದೆ. ಅಂಶವು ಅದರ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸಿದಾಗ ಅಥವಾ ಕಡಿಮೆಯಾದಾಗಲೂ ಕರ್ಸರ್‌ನೊಂದಿಗೆ ಪ್ರಮಾಣಾನುಗುಣವಾಗಿ ಚಲಿಸುತ್ತದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಬಳಸುತ್ತಿದೆ getBoundingClientRect() ಅಂಶದ ಪ್ರಸ್ತುತ ಆಯಾಮಗಳನ್ನು ಅಳೆಯಲು ಮತ್ತು ವ್ಯೂಪೋರ್ಟ್‌ನ ಸ್ಥಾನದ ಆಧಾರದ ಮೇಲೆ ಆಫ್‌ಸೆಟ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಎಳೆಯುವಾಗ ಅಂಶವನ್ನು ನಿಖರವಾಗಿ ಇರಿಸಲು ಈ ಆಫ್‌ಸೆಟ್‌ಗಳು ನಿರ್ಣಾಯಕವಾಗಿವೆ. ಇದಲ್ಲದೆ, ಸ್ಕೇಲ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಚಲನೆಯ ಡೆಲ್ಟಾಗಳನ್ನು ಸರಿಹೊಂದಿಸುವ ಮೂಲಕ, ಕರ್ಸರ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಅಂಶವು ತುಂಬಾ ವೇಗವಾಗಿ ಅಥವಾ ನಿಧಾನವಾಗಿ ಚಲಿಸುವಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ನೀವು ತಪ್ಪಿಸುತ್ತೀರಿ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಕಾರ್ಯವನ್ನು ಮಾಡ್ಯುಲರೈಸ್ ಮಾಡುವುದರಿಂದ ವಿವಿಧ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮರುಬಳಕೆಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಈ ಮಾಡ್ಯುಲರ್ ವಿಧಾನವನ್ನು ಬಹು ಅಂಶಗಳು, ವಿಭಿನ್ನ ಮಾಪಕಗಳು ಮತ್ತು ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಆಫ್‌ಸೆಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವಿಸ್ತರಿಸಬಹುದು. ಈವೆಂಟ್ ಕೇಳುಗರ ಬಳಕೆ ಇಷ್ಟ addEventListener() ಮೌಸ್, ಟಚ್ ಅಥವಾ ಪೆನ್‌ನಂತಹ ವಿವಿಧ ಇನ್‌ಪುಟ್ ಪ್ರಕಾರಗಳಲ್ಲಿ ಡ್ರ್ಯಾಗ್ ನಡವಳಿಕೆಯು ಸ್ಥಿರವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ಸ್ಥಾನೀಕರಣ ಎರಡನ್ನೂ ನಿಖರವಾಗಿ ನಿರ್ವಹಿಸುವ ಮೂಲಕ, ಅಂಶವು ಹೇಗೆ ರೂಪಾಂತರಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ನಿಮ್ಮ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಇಂಟರ್ಫೇಸ್ ಅರ್ಥಗರ್ಭಿತ ಮತ್ತು ಮೃದುವಾಗಿರುತ್ತದೆ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುತ್ತೀರಿ.

ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಕುರಿತು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು

  1. ಸ್ಕೇಲಿಂಗ್ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಸ್ಥಾನೀಕರಣದ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ?
  2. ಸ್ಕೇಲಿಂಗ್ ಅಂಶದ ಗಾತ್ರವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಸರಿಯಾದ ಸ್ಥಾನವನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು, ನೀವು ಸ್ಕೇಲ್ ಅಂಶದಿಂದ ಅನುವಾದವನ್ನು ವಿಭಜಿಸುವ ಮೂಲಕ ಚಲನೆಯನ್ನು ಸರಿಹೊಂದಿಸಬೇಕಾಗುತ್ತದೆ. ಕರ್ಸರ್ನೊಂದಿಗೆ ಅಂಶವು ಸರಿಯಾಗಿ ಚಲಿಸುತ್ತದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
  3. ಯಾವ ಪಾತ್ರವನ್ನು ಮಾಡುತ್ತದೆ getBoundingClientRect() ಇದರಲ್ಲಿ ಆಡುವುದೇ?
  4. getBoundingClientRect() ವ್ಯೂಪೋರ್ಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಅಂಶದ ಪ್ರಸ್ತುತ ಆಯಾಮಗಳು ಮತ್ತು ಸ್ಥಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ, ನಿಖರವಾದ ಚಲನೆ ಮತ್ತು ಆಫ್‌ಸೆಟ್‌ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
  5. ಅಂಶವನ್ನು ಎಳೆಯುವಾಗ ನಾನು ವಿಭಿನ್ನ ಪ್ರಮಾಣದ ಮೌಲ್ಯಗಳನ್ನು ಹೇಗೆ ಲೆಕ್ಕ ಹಾಕಬಹುದು?
  6. ಚಲನೆಯ ಅಂತರವನ್ನು ಮಾಪಕದಿಂದ ಭಾಗಿಸುವ ಮೂಲಕ, ಅಂಶದ ಚಲನೆಯು ಅದರ ಗಾತ್ರಕ್ಕೆ ಅನುಗುಣವಾಗಿರುತ್ತದೆ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ನೀವು ಸಹ ಬಳಸಬಹುದು setProperty() ಪ್ರಮಾಣದ ಮೌಲ್ಯವನ್ನು ಆಧರಿಸಿ CSS ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನವೀಕರಿಸಲು.
  7. ಇತರ ಅಂಶಗಳಿಗಾಗಿ ನಾನು ಈ ಕಾರ್ಯವನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದೇ?
  8. ಹೌದು, ಮಾಡ್ಯುಲರ್ ಕೋಡ್ ಅನ್ನು ಬರೆಯುವ ಮೂಲಕ ಮತ್ತು ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಲಾಜಿಕ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕಾರ್ಯಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯುವ ಮೂಲಕ, ನೀವು ಅವುಗಳ ಪ್ರಮಾಣ ಅಥವಾ ರೂಪಾಂತರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ಬಹು ಅಂಶಗಳಿಗೆ ಅದೇ ಕಾರ್ಯವನ್ನು ಅನ್ವಯಿಸಬಹುದು.
  9. ನಾನು ಯಾಕೆ ಬಳಸಬೇಕು removeEventListener() ಎಳೆದ ನಂತರ?
  10. ಬಳಸುತ್ತಿದೆ removeEventListener() ಮೆಮೊರಿ ಸೋರಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಅಂಶವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದಾಗ ಡ್ರ್ಯಾಗ್ ಕ್ರಿಯೆಯು ನಿಲ್ಲುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ಈವೆಂಟ್ ಕೇಳುಗರು ಅನಗತ್ಯವಾಗಿ ಸಕ್ರಿಯವಾಗಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಸ್ಕೇಲಿಂಗ್‌ನೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಅಂತಿಮ ಆಲೋಚನೆಗಳು

ಎಳೆಯಬಹುದಾದ ಅಂಶಗಳನ್ನು ಅಳೆಯುವ ಯೋಜನೆಗಳಲ್ಲಿ, ಸರಿಯಾದ ಸ್ಥಾನವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು ಸಂಕೀರ್ಣವಾಗುತ್ತದೆ. ಸ್ಕೇಲ್ ಮತ್ತು ಆರಂಭಿಕ ಸ್ಥಾನ ಎರಡಕ್ಕೂ ಸರಿಹೊಂದಿಸಲು ಚಲನೆಯ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಸ್ಕೇಲ್ ಅಂಶದಿಂದ ವಿಭಜಿಸುವ ಅಗತ್ಯವಿದೆ, ನಿಖರವಾದ ಚಲನೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಸರಿಹೊಂದಿಸುವುದು ಮತ್ತು ಬೌಂಡಿಂಗ್ ಆಯತದ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಬಳಸುವಂತಹ ಕ್ರಿಯಾತ್ಮಕ ವಿಧಾನಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ, ನೀವು ತಡೆರಹಿತ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಅನುಭವವನ್ನು ಸಾಧಿಸಬಹುದು. ವಿವಿಧ ಪ್ರಮಾಣದ ಮೌಲ್ಯಗಳಲ್ಲಿ ಈ ವಿಧಾನವನ್ನು ಅನ್ವಯಿಸುವುದರಿಂದ ಸುಗಮ ಸಂವಹನವನ್ನು ನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಸ್ಥಿರತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.

ಸ್ಕೇಲಿಂಗ್‌ನೊಂದಿಗೆ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್‌ಗಾಗಿ ಮೂಲಗಳು ಮತ್ತು ಉಲ್ಲೇಖಗಳು
  1. ಈ ಲೇಖನದ ವಿಷಯವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಡ್ರ್ಯಾಗ್ ಮತ್ತು ಡ್ರಾಪ್ ಲೈಬ್ರರಿಯನ್ನು ಆಧರಿಸಿದೆ ಅನುವಾದಿಸಿ ಕಾರ್ಯ ಮತ್ತು ಪ್ರಮಾಣದ ಆಸ್ತಿ. ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನಕ್ಕಾಗಿ, ಲಭ್ಯವಿರುವ ಕೋಡ್ ಉದಾಹರಣೆಯನ್ನು ನೋಡಿ ಕೋಡ್ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ .
  2. ಹೆಚ್ಚುವರಿ ಡ್ರ್ಯಾಗ್-ಅಂಡ್-ಡ್ರಾಪ್ ಕ್ರಿಯಾತ್ಮಕತೆ ಮತ್ತು ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಮೊಜಿಲ್ಲಾದ ಡೆವಲಪರ್ ನೆಟ್‌ವರ್ಕ್ (MDN) ದಾಖಲಾತಿಯಿಂದ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ. ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ವಿವರಗಳು getBoundingClientRect() ಇಲ್ಲಿ ಕಾಣಬಹುದು.
  3. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಸುಧಾರಿತ ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ರೂಪಾಂತರ ತಂತ್ರಗಳನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಈ ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ನೋಡಿ ಸಿಎಸ್ಎಸ್ ರೂಪಾಂತರಗಳು W3Schools ಒದಗಿಸಿದೆ.