[TIL] 210926
24950 ワード
📝 今日作った
📖 学習資料
📚 学識
1. WEB APIs
1)メモ
2)実習
📌 ウィンドウサイズタグ(一番前のウィンドウは省略可能)
1)メモ
2)実習
📌 ウィンドウサイズタグ(一番前のウィンドウは省略可能)
ディスプレイサイズ:window.
screen.width
(height)ブラウザサイズ:window.
outerWidth
(outerHeight)(スクロールを含む)Webページサイズ:window.
innerWidth
(innerHeight)(スクロールなし)ページサイズ:
document.documentElement.clientWidth
(クライアントHeight)const all = document.querySelector('.all');
function changeSize () {
all.innerHTML = `
window.screen: ${screen.width}, ${screen.height}<br/ >
window.outer: ${outerWidth}, ${outerHeight}<br/ >
window.inner: ${this.innerWidth}, ${innerHeight}<br/ >
documentElement.clientWidth: ${document.documentElement.clientWidth}, ${document.documentElement.clientHeight}`;
}
changeSize();
window.addEventListener('resize', () => changeSize());
📌 クリック先の座標タグ
element.getBoundingClientRect()
DOMRectオブジェクトを返します.ここには、要素の大きさと、
뷰포트를 기준으로 하는 '요소'의 상대적인 위치
についての情報が含まれていますトップ、left、bottom、rightの値をとります.bottomとrightは「要素」を表すbottomとrightで、CSSのbottomとrightとは違います.
DOMRectオブジェクトの下部と右側の値は、ブラウザの左上隅に基づいて要素の距離を計算し、対応する距離値を有します.
mouseEvent.clientX(Y)
「マウスイベント(クリック、ダブルクリックなど)が発生した位置」と
브라우저
のX軸、Y軸の距離はどれくらいですかmouseEvent.pageX(Y)
「マウスイベント(クリック、ダブルクリックなど)が発生した位置」は
문서가 시작하는
X軸、Y軸からどのくらい離れていますか?const box_7 = document.querySelector('.box-7');
box_7.addEventListener('click', event => {
console.log(box_7.getBoundingClientRect()); // 브라우저 기준, 요소의 위치 (클릭한 지점의 위치 x)
console.log(`offset: ${event.offsetX}. ${event.offsetY}`) // 클릭한 요소 기준, 클릭한 지점의 위치
console.log(`screen: ${event.screenX}, ${event.screenY}`); // 모니터 기준, 클릭한 지점의 위치
console.log(`client: ${event.clientX}, ${event.clientY}`); // 브라우저 기준, 클릭한 지점의 위치
console.log(`page: ${event.pageX}, ${event.pageY}`); // 문서 기준, 클릭한 지점의 위치
});
📌 スクロールウィンドウ(特定の場所、特定の要素に移動)
const by = document.querySelector('.by'); // by 버튼
const to = document.querySelector('.to'); // to 버튼
const into = document.querySelector('.into'); // into 버튼
by.addEventListener('click', () => scrollBy({top: 100, left: 0, behavior: 'smooth'}));
// y축으로 100px만큼 부드럽게 이동
to.addEventListener('click', () => scrollTo(0, 100));
// y축으로부터 100px 지점으로 한번에 이동
into.addEventListener('click', () => box_7.scrollIntoView({behavior: 'smooth', block: 'end', inline: 'nearest'}));
// box_7 요소로 이동 → behavior: 부드럽게 이동, block: 수직 정렬, inline: 수평 정렬
📌 座標を検索し、マウス座標に沿って移動する円を作成します(007)
position: absolute left(top)
値=clientX(Y)
値<html>
<body>
<div class="line horizon"></div>
<div class="line vertical"></div>
<img src="img/target.png" class="circle">
<span class="coord"></span>
</body>
</html>
🔎 CSSbody {
background-color: black;
}
.line {
background-color: white;
position: absolute;
}
.horizon {
width: 100%;
height: 1px;
top: 50%;
}
.vertical {
width: 1px;
height: 100%;
left: 50%;
}
.circle {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%); /* 여기서 50%는 해당 요소의 크기의 50%를 말한다 */
}
.coord {
color: white;
position: absolute;
left: 50%;
top: 50%;
transform: translate(30px, 30px);
font-size: 30px;
}
🔎 javascriptconst horizon = document.querySelector(".horizon");
const vertical = document.querySelector(".vertical");
const circle = document.querySelector(".circle");
const coord = document.querySelector(".coord");
document.addEventListener("mousemove", (event) => {
console.log(event.clientX, event.clientY);
const x = event.clientX;
const y = event.clientY;
horizon.style.top = `${y}px`; // 수평선엔 top 값만
vertical.style.left = `${x}px`; // 수직선엔 left 값만
circle.style.left = `${x}px`;
circle.style.top = `${y}px`;
coord.style.left = `${x}px`;
coord.style.top = `${y}px`;
coord.innerHTML = `${x}px, ${y}px`;
});
明日作った
Reference
この問題について([TIL] 210926), 我々は、より多くの情報をここで見つけました https://velog.io/@leesyong/TIL-210926テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol