title 속성으로 대충 해결했는데, 그냥 궁금해서 질문해 봐요.
관련링크
본문
https://codepen.io/sinbi/pen/OJdyeLE
위 예제보면 이미지들이 많이 있어요.
이미지 허버 시 JS로 title 뜨게 간단히 처리했는데, 원래는 아래처럼 하려고 했어요.
그런데, ChatGPT가 수 없는 시행착오만 하고 제대로 구현을 못 하더라구요. ㅡㅡ;;
지적호기심 차원에서 궁금해서 문의해 봅니다.
각 이미지에 마우스 허버 시 해당 이미지 위에 검은색배경에 테두리가 약간 둥근 span 요소로 된 tooltip 창을 마우스커서 바로 위에 띄워서 해당 이미지의 클래스 속성의 속성값을 표시하되, 해당 이미지 위에서 마우스커서가 움직이면 툴팁창도 마우스커서 따라다니게 ~~
알파고를 이긴 이세돌처럼, ChatGPT보다 우수한 인간이 나타나길 바래봅니다. ㅎ
답변 3
다음과 같이 해보시는건 어떨까 합니다.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.box {
background-color: red;
height: 5000px;
position: relative;
}
.box img {
width: calc(100% / 3);
height: auto;
float: left;
margin-bottom: 10px;
}
.tooltip {
display: none;
position: absolute;
background-color: rgba(0, 0, 0, 0.7);
color: white;
border-radius: 5px;
padding: 5px;
}
.box img:hover + .tooltip {
display: block;
}
</style>
</head>
<body>
<div class="box">
<img src="https://source.unsplash.com/random" alt="이미지" class="normal">
<span class="tooltip">normal</span>
<img src="https://source.unsplash.com/random" alt="이미지" class="multiply">
<span class="tooltip">multiply</span>
<!-- 다른 이미지 및 툴팁들도 추가 -->
</div>
</body>
</html>
CSS를 사용하여 이미지의 툴팁을 숨기고 마우스가 이미지 위로 올라갈 때 툴팁을 보이게 하도록 할 수 있을 것으로 보입니다.
!-->
<style>
.box { position: relative; max-width: 600px; }
.box img { width: 100%; height: auto; }
.box .tooltip { position: absolute; display: none; padding: 8px 26px; background: #000; color: #fff; }
</style>
<div class="box">
<img src="https://source.unsplash.com/random" alt="이미지" class="normal" title="normal">
<span class="tooltip">이미지 툴팁</span>
</div>
<script>
$(function() {
$(document).on('mousemove','.normal',function(el) {
var outer = document.getElementsByClassName('box')[0];
var mouseAngle = document.getElementsByClassName('tooltip')[0];
var mouseX = el.clientX;
var mouseY = el.clientY;
var angleX = mouseX - outer.getBoundingClientRect().left;
var angleY = mouseY - outer.getBoundingClientRect().top;
mouseAngle.style.left = angleX + 'px';
mouseAngle.style.top = angleY + 'px';
$('.tooltip').show();
});
});
</script>
이런 식일까요?
!-->뒷북입니다. 아래처럼 적당히...
<div id="myDiv" style="width:272px;position:relative">
<img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" class="my_1">
<img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" class="my_2">
<img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" class="my_3">
<img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" class="my_4">
<span id="ment" style="display:none;position:absolute;top:0px;left:0px;padding:10px;background-color:#eeeeee;border:1px solid #cccccc"></span>
</div>
<script>
myDiv.onmouseover = myDiv.onmouseout = function() {
ment.style.display = ment.style.display == "block" ? "none" : "block";
}
myDiv.onmousemove = function(e) {
ment.style.top = e.clientY + "px";
ment.style.left = e.clientX + "px";
}
for (i of myDiv.querySelectorAll("img")) {
i.onmouseover = function() {
ment.innerHTML = this.className;
}
}
</script>
!-->
답변을 작성하시기 전에 로그인 해주세요.