วิธีการสร้าง:ล็อคเกอร์เปรียบเทียบภาพ
เรียนรู้ว่าจะสร้างล็อคเกอร์เพื่อเปรียบเทียบภาพสองภาพ
ล็อคเกอร์เปรียบเทียบภาพ
ย้ายล็อคเกอร์สีน้ำเงินเพื่อเปรียบเทียบภาพ:

สร้างล็อคเกอร์เปรียบเทียบภาพ
ขั้นที่ 1 - เพิ่ม HTML:
<div class="img-comp-container"> <div class="img-comp-img"> <img src="img_snow.jpg" width="300" height="200"> </div> <div class="img-comp-img img-comp-overlay"> <img src="img_forest.jpg" width="300" height="200"> </div> </div>
ขั้นที่ 2 - เพิ่ม CSS:
ตัวแทนต้องมีการตั้งตำแหน่ง 'relative'。
* {box-sizing: border-box;} .img-comp-container { position: relative; height: 200px; /* ควรเท่ากับความสูงของภาพ */ } .img-comp-img { position: absolute; width: auto; height: auto; overflow: hidden; } .img-comp-img img { display: block; vertical-align: middle; } .img-comp-slider { position: absolute; z-index: 9; cursor: ew-resize; /* ตั้งรูปแบบล็อคเกอร์เพื่อตัวตรงกลม: */ width: 40px; height: 40px; background-color: #2196F3; opacity: 0.7; border-radius: 50%; }
ขั้นที่ 3 - เพิ่ม JavaScript:
function initComparisons() { var x, i; /* หาองค์ประกอบที่มีคลาส "overlay": */ x = document.getElementsByClassName("img-comp-overlay"); for (i = 0; i < x.length; i++) { /* ทำงานเพื่อแปลงค่าขององค์ประกอบ "ทับเข้า" ในแต่ละครั้ง: ส่งมอบองค์ประกอบ "ทับเข้า" ให้เป็นพารามิเตอร์เมื่อปฏิบัติการฟังก์ชัน compareImages: */ compareImages(x[i]); } function compareImages(img) { var slider, img, clicked = 0, w, h; /* รับความยาวและความสูงขององค์ประกอบ img: */ w = img.offsetWidth; h = img.offsetHeight; /* ตั้งความกว้างขององค์ประกอบ img ให้เท่ากับ 50%: */ img.style.width = (w / 2) + "px"; /* สร้างลูกขาว: */ slider = document.createElement("DIV"); slider.setAttribute("class", "img-comp-slider"); /* ใส่ลูกขาว: */ img.parentElement.insertBefore(slider, img); /* จัดตั้งลูกขาวให้อยู่ตรงกลาง: */ slider.style.top = (h / 2) - (slider.offsetHeight / 2) + "px"; slider.style.left = (w / 2) - (slider.offsetWidth / 2) + "px"; /* ฟังก์ชันที่จะทำงานเมื่อกดแปลงกลุ่มมือ: */ slider.addEventListener("mousedown", slideReady); /* ฟังก์ชันที่จะทำงานเมื่อปล่อยแปลงกลุ่มมือหลังจากคลิก: */ window.addEventListener("mouseup", slideFinish); /* หรือสัมผัส (สำหรับหน้าจอสัมผัส:) */ slider.addEventListener("touchstart", slideReady); /* และปล่อย (สำหรับหน้าจอสัมผัส:) */ window.addEventListener("touchend", slideFinish); function slideReady(e) { /* ป้องกันการกระทำอื่นที่อาจเกิดขึ้นเมื่อเคลื่อนไหวในรูปภาพ */ e.preventDefault(); /* ตัวชี้เซลล์ได้ถูกคลิกและเตรียมตัวที่จะเคลื่อนไหว */ clicked = 1; /* ฟังก์ชันที่ปฏิบัติการเมื่อตัวชี้เซลล์เคลื่อนไหว */ window.addEventListener("mousemove", slideMove); window.addEventListener("touchmove", slideMove); } function slideFinish() { /* ไม่มีการคลิกตัวชี้เซลล์ต่อไปอีกต่อไป */ clicked = 0; } function slideMove(e) { var pos; /* ออกจากฟังก์ชันนี้หากไม่มีการคลิกตัวชี้เซลล์ต่อไปอีกต่อไป */ if (clicked == 0) return false; /* ดึงตำแหน่ง X ของตัวชี้เซลล์ */ pos = getCursorPos(e) /* ป้องกันไม่ให้ตัวชี้เซลล์อยู่นอกจากรูปภาพ */ if (pos < 0) pos = 0; if (pos > w) pos = w; /* ปฏิบัติการฟังก์ชัน ตามตัวชี้เซลล์เพื่อปรับขนาดรูปภาพที่เก็บอุปกรณ์ */ slide(pos); } function getCursorPos(e) { var a, x = 0; e = (e.changedTouches) ? e.changedTouches[0] : e; /* ดึงตำแหน่ง X ของรูปภาพ */ a = img.getBoundingClientRect(); /* คำนวณตำแหน่ง X ของตัวชี้เซลล์เกี่ยวกับรูปภาพ */ x = e.pageX - a.left; /* คิดเข้าใจการเลื่อนหน้าเว็บไซต์ทั้งหมด */ x = x - window.pageXOffset; return x; } function slide(x) { /* ปรับขนาดรูปภาพ */ img.style.width = x + "px"; /* ตำแหน่งตัวชี้เซลล์ */ slider.style.left = img.offsetWidth - (slider.offsetWidth / 2) + "px"; } } }
ขั้นที่ 4 - ปฏิบัติสคริปต์:
<script> initComparisons(); </script>