JS 이미지 확대경 플러그 인 상세 설명 실현
우리 모 두 는 각종 전자상거래 사 이 트 를 자주 돌아 다 니 는데 상품 의 세부 사항 은 확대경 을 사용 해 야 한다.이것 은 모두 가 낯 설 지 않 을 것 이다.오늘 우 리 는 사진 확대경 의 플러그 인 을 만들어 서 사진 이 어떻게 확대 되 는 지 보 자.
일단 저희 가 이 루 면 어떻게 되 는 지.
효 과 를 보고 아이디어 가 떠 오 르 셨 나 요?없 으 면 어떻게 이 루어 졌 는 지 한번 봅 시다~
1.사고 실현
① 위 에서 확대 하 는 효 과 를 실현 하려 면 세 개의 div 를 해 야 한다.하 나 는 원 도 를 놓 고 다른 하 나 는 확대 효 과 를 넣 는 div 이다.마지막 으로 마 우 스 는 위 에서 확대 하 는 부분의 div(이 div 는 p 태그 로 대체 해 야 한다).
② 확대 비율 을 정 하고 가장 중요 한 것 은 마우스 손가락 에 있 는 div 와 확대 효과 의 div 는 원 그림 과 큰 그림 을 놓 는 비율 이 같다.
③ 마우스 의 위 에 있 는 확대 효 과 를 나타 낸다.
2 구체 적 실현 절차
우선,우리 먼저 div 세 개 를 만 듭 시다.
<div id="wrapper">
<!-- -->
<div id="img_min">
<!-- -->
<img src="img/11.png" alt="min">
<!-- -->
<p id="mousebg"></p>
</div>
<!-- -->
<div id="img_max">
<img id="img2_img" src="img/11.png" alt="max">
</div>
</div>
우리 의 HTML 코드 부분 은 이미 전부 완성 되 었 습 니 다.그 다음 에 우 리 는 JS 로 기능 을 실현 합 니 다.원 그림 에 마우스 진입,마우스 이동,마우스 이동 등 세 가지 이 벤트 를 추가 합 니 다.
마우스 가 원본 그림 에 들 어 갈 때 마우스 가 가리 킬 때의 div 와 확대 효과 의 div 가 동시에 표 시 됩 니 다.
img1.onmouseover = function () {
//
img2.style.display = 'block';
mousebg.style.display = 'block';
}
마우스 이동 이벤트:
img1.onmouseout = function () {
//
img2.style.display = 'none';
mousebg.style.display = 'none';
}
중요 한 것 은 마우스 가 이동 할 때 p 태그 와 원 그림 의 위치 에 따라 큰 그림 이 확대 되 어야 할 부분 을 표시 하 는 것 이다.
var _event = event||window.event;//
var mouseX = _event.clientX - img1.offsetLeft;
//
var mouseY = _event.clientY - img1.offsetTop;
위치 분석 을 할 때 네 가지 임계 상황 을 고려 해 야 한다.마우스 가 그림 의 위,아래,왼쪽,오른쪽 에서 막 들 어 왔 을 때 마우스 가 가리 키 는 div 너비 의 2 분 의 1 보다 작 을 때 확대 효과 의 div 가 나타 나 움 직 이지 않 는 다.
// ,
if(mouseX<mousebg.offsetWidth/2){
mouseX = mousebg.offsetWidth/2;
}
if(mouseX>img1.offsetWidth-mousebg.offsetWidth/2){
mouseX = img1.offsetWidth-mousebg.offsetWidth/2;
}
if(mouseY<mousebg.offsetHeight/2){
mouseY = mousebg.offsetHeight/2;
}
if(mouseY>img1.offsetHeight-mousebg.offsetHeight/2){
mouseY = img1.offsetHeight-mousebg.offsetHeight/2;
}
마지막 으로 큰 그림 의 표시 범 위 를 계산 합 니 다.
//
img2_img.style.left = -mul*mouseX+img2.offsetWidth/2+"px";
img2_img.style.top = -mul*mouseY+img2.offsetHeight/2+"px";
//
mousebg.style.left = mouseX-mousebg.offsetWidth/2+"px";
mousebg.style.top = mouseY-mousebg.offsetHeight/2+"px";
이렇게 해서 우 리 는 JS 로 이미지 확대경 을 실현 하 는 플러그 인 을 모두 완성 했다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.