Cách tạo: Thanh trượt so sánh hình ảnh
- Trang trước Kính lupa hình ảnh
- Trang tiếp theo Biểu tượng trang web
Học cách tạo thanh trượt so sánh hai hình ảnh.
Thanh trượt so sánh hình ảnh
Di chuyển thanh trượt xanh để so sánh hình ảnh:

Tạo thanh trượt so sánh hình ảnh
Bước 1 - Thêm 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>
Bước 2 - Thêm CSS:
Container phải có vị trí "tương đối".
* {box-sizing: border-box;} .img-comp-container { position: relative; height: 200px; /* Phải cùng với chiều cao của hình ảnh */ } .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; /* Thiết lập外观 của thanh trượt: */ width: 40px; height: 40px; background-color: #2196F3; opacity: 0.7; border-radius: 50%; }
Bước 3 - Thêm JavaScript:
function initComparisons() { var x, i; /* Tìm kiếm tất cả các phần tử có lớp "overlay": */ x = document.getElementsByClassName("img-comp-overlay"); for (i = 0; i < x.length; i++) { /* Thực hiện một lần cho mỗi phần tử“element che盖”: Chạy hàm compareImages và传递“element che盖” làm tham số: */ compareImages(x[i]); } function compareImages(img) { var slider, img, clicked = 0, w, h; /* Lấy chiều rộng và chiều cao của phần tử img: */ w = img.offsetWidth; h = img.offsetHeight; /* Đặt chiều rộng của phần tử img thành 50%: */ img.style.width = (w / 2) + "px"; /* Tạo thanh trượt: */ slider = document.createElement("DIV"); slider.setAttribute("class", "img-comp-slider"); /* Chèn thanh trượt: */ img.parentElement.insertBefore(slider, img); /* Đặt thanh trượt vào giữa: */ slider.style.top = (h / 2) - (slider.offsetHeight / 2) + "px"; slider.style.left = (w / 2) - (slider.offsetWidth / 2) + "px"; /* Thực hiện hàm khi nhấn nút chuột: */ slider.addEventListener("mousedown", slideReady); /* Thực hiện một hàm khác khi nhả nút chuột: */ window.addEventListener("mouseup", slideFinish); /* Hoặc chạm vào (cho màn hình chạm: */) slider.addEventListener("touchstart", slideReady); /* Và giải phóng (cho màn hình chạm: */) window.addEventListener("touchend", slideFinish); function slideReady(e) { /* Ngăn chặn bất kỳ hành động nào khác có thể xảy ra khi di chuyển trên hình ảnh: */ e.preventDefault(); /* Thanh trượt đã được nhấn và sẵn sàng di chuyển: */ clicked = 1; /* Hàm được thực hiện khi thanh trượt di chuyển: */ window.addEventListener("mousemove", slideMove); window.addEventListener("touchmove", slideMove); } function slideFinish() { /* Không nhấn thanh trượt nữa: */ clicked = 0; } function slideMove(e) { var pos; /* Nếu không còn nhấn thanh trượt, thoát khỏi hàm này: */ if (clicked == 0) return false; /* Lấy vị trí x của con trỏ: */ pos = getCursorPos(e) /* Tránh để thanh trượt nằm ngoài hình ảnh: */ if (pos < 0) pos = 0; if (pos > w) pos = w; /* Thực hiện một hàm, điều chỉnh kích thước của hình ảnh che phủ dựa trên con trỏ: */ slide(pos); } function getCursorPos(e) { var a, x = 0; e = (e.changedTouches) ? e.changedTouches[0] : e; /* Lấy vị trí x của hình ảnh: */ a = img.getBoundingClientRect(); /* Tính toán tọa độ x của con trỏ so với hình ảnh: */ x = e.pageX - a.left; /* Lưu ý bất kỳ cuộn trang nào: */ x = x - window.pageXOffset; return x; } function slide(x) { /* Chỉnh sửa kích thước hình ảnh: */ img.style.width = x + "px"; /* Đặt vị trí thanh trượt: */ slider.style.left = img.offsetWidth - (slider.offsetWidth / 2) + "px"; } } }
Bước 4 - Chạy脚本:
<script> initComparisons(); </script>
- Trang trước Kính lupa hình ảnh
- Trang tiếp theo Biểu tượng trang web