- 3 bước tắt chú thích Youtube vĩnh viễn (turn off YouTube annotations)
- Bảng giá tên miền Việt Nam, Domain Quốc tế
- Hosting Linux cPanel
- Hosting Windows
- Hosting Linux DirectAdmin
- Replace wordpress database – Tìm kiếm và thay thế văn bản trong sql
- Những điều cần làm và cần tránh khi thuê SEO
- Cách sửa và lưu file host trên PC (máy tính windows)
- IDMcc for Firefox Update – download IDMcc cho firefox
- So sánh phần mềm quản lý hosting Cpanel và Directadmin
- Bài 6: Pseudo-classes For Links (định dạng Link trong CSS)
- Top 5 Sai Lầm hay mắc phải trong Marketing
- Cách hiển thị Category Description trên bài viết và trên trang tìm kiếm cho wordpress
- Làm gì khi ngân sách Marketing quá ít?
- Cách tắt thông báo, quảng cáo của sim viettel trên điện thoại và iphone
- 1.2. Quá khứ của Marketing trực tuyến: Web 1.0
- 1.1 Bức tranh về Marketing trực tuyến
- Sơ lược về quá khứ, hiện tại và tương lai Marketing Online
Tạo hiệu ứng kính lúp cho ảnh với jQuery và CSS3
Ứng dụng này thỉnh thoảng chúng ta thường bắt gặp tại các trang web bán hàng, khi đưa chuột vào các hình ảnh sản phẩm thì các hình ảnh sản phẩm đó thông qua một kính lúp sẽ phóng to và rõ ràng các chi tiết trên tấm hình đó. Hiệu ứng này rất hữu dụng khi mà khách hàng cần phải xem rõ sản phẩm mà họ muốn mua, và cũng chính vì thế mà khi khách hàng muốn thiết kế một trang web bán hàng, họ thường yêu cầu đưa chức năng này vào trong trang web của họ.
Trong bài viết ngày hôm nay, TM Việt xin được chia sẻ cho các bạn cách tạo hiệu ứng kính lúp đơn giản cho hình ảnh bằng CSS3 và jQuery. Qua bài viết này, các bạn sẽ có thể áp dụng nó vào cho những trang web bán hàng của các bạn.
Để minh họa, chúng ta cần có khung chuẩn html như sau :
1 2 3 4 5 6 7 8 9 10 |
<!-- Lets make a simple image magnifier --> <div class="magnify"> <!-- This is the magnifying glass which will contain the original/large version --> <div class="large"></div> <!-- This is the small image --> <img class="small" src="iphone.jpg" width="200"/> </div> |
Trong đoạn html bên trên, có 2 phần mà chúng ta cần lưu ý là một thẻ div với class là .large sẽ là nơi chứa ảnh lớn khi rê chuột vào ảnh nhỏ. Phần còn lại là ảnh nhỏ mà chúng ta sẽ hiển thị trên màn hình.
Ở phần này, chúng ta sẽ sử dụng thuộc tính CSS3 box-shadow và border-radius để tạo kính lúp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/*Some CSS*/ * {margin: 0; padding: 0;} .magnify {width: 200px; margin: 50px auto; position: relative;} /*Lets create the magnifying glass*/ .large { width: 175px; height: 175px; position: absolute; border-radius: 100%; /*Multiple box shadows to achieve the glass effect*/ box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 0 0 7px 7px rgba(0, 0, 0, 0.25), inset 0 0 40px 2px rgba(0, 0, 0, 0.25); /*Lets load up the large image first*/ background: url('iphone.jpg') no-repeat; /*hide the glass by default*/ display: none; } /*To solve overlap bug at the edges during magnification*/ .small { display: block; } |
jQuery
Và sau đây là toàn bộ đoạn code sẽ giúp các bạn tạo hiệu ứng kính lúp cho ảnh. Mỗi một đoạn code có ghi chú thích rõ ràng cho các bạn tham khảo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<script type="text/javascript"> $(document).ready(function(){ var native_width = 0; var native_height = 0; //Now the mousemove function $(".magnify").mousemove(function(e){ //When the user hovers on the image, the script will first calculate //the native dimensions if they don't exist. Only after the native dimensions //are available, the script will show the zoomed version. if(!native_width && !native_height) { //This will create a new image object with the same image as that in .small //We cannot directly get the dimensions from .small because of the //width specified to 200px in the html. To get the actual dimensions we have //created this image object. var image_object = new Image(); image_object.src = $(".small").attr("src"); //This code is wrapped in the .load function which is important. //width and height of the object would return 0 if accessed before //the image gets loaded. native_width = image_object.width; native_height = image_object.height; } else { //x/y coordinates of the mouse //This is the position of .magnify with respect to the document. var magnify_offset = $(this).offset(); //We will deduct the positions of .magnify from the mouse positions with //respect to the document to get the mouse positions with respect to the //container(.magnify) var mx = e.pageX - magnify_offset.left; var my = e.pageY - magnify_offset.top; //Finally the code to fade out the glass if the mouse is outside the container if(mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) { $(".large").fadeIn(100); } else { $(".large").fadeOut(100); } if($(".large").is(":visible")) { //The background position of .large will be changed according to the position //of the mouse over the .small image. So we will get the ratio of the pixel //under the mouse pointer with respect to the image and use that to position the //large image inside the magnifying glass var rx = Math.round(mx/$(".small").width()*native_width - $(".large").width()/2)*-1; var ry = Math.round(my/$(".small").height()*native_height - $(".large").height()/2)*-1; var bgp = rx + "px " + ry + "px"; //Time to move the magnifying glass with the mouse var px = mx - $(".large").width()/2; var py = my - $(".large").height()/2; //Now the glass moves with the mouse //The logic is to deduct half of the glass's width and height from the //mouse coordinates to place it with its center at the mouse coordinates //If you hover on the image now, you should see the magnifying glass in action $(".large").css({left: px, top: py, backgroundPosition: bgp}); } } }) }) </script> |
Các bạn có thể xem cách kết nối chúng ở file đính kèm và live demo bên dưới:
Shortlink:
- Bài Trước 4 Phần mềm đọc mã màu tiện lợi nhất
- Bài Sau Hướng dẫn cách chèn thẻ code vào bài viết wordpress
Tất cả chỉ có vậy! chúc các bạn thành công