2012-01-13 49 views
5

Tôi đang cố gắng thêm chức năng vào trang web cho phép người dùng xoay và phóng to hình ảnh. Tôi đã tìm thấy nhiều plugin jquery cho phép phóng to. Không có mà cũng làm xoay vòng mặc dù. Vì vậy, tôi đang cố gắng sử dụng một plugin jquery cho phóng to/panning kết hợp với CSS để xử lý luân chuyển, nhưng cho đến nay không thành công. Nó không có vẻ quan trọng nếu tôi áp dụng CSS trước khi thêm plugin jquery, hoặc sau đó. Hoặc chuỗi chúng lại với nhau (một lần nữa, đã thử cả hai quay trước và sau khi các plugin zoom cho chuỗi, và không có gì có vẻ để làm việc).vấn đề jquery với hình ảnh xoay và zoom

để tham khảo, mã của tôi là dưới đây:

HTML:

<body> 
    <script src="scripts/jquery-1.6.4.js" type="text/javascript"></script> 
    <script src="zoom_assets/jquery.smoothZoom.min.js" type="text/javascript"></script> 
    <script src="scripts/PictureViewer_SmoothZoom.js" type="text/javascript"></script> 

    <img src="images/leaftemple11680.jpg" id="leafTemple" /> 
</body> 

CSS:

.rotate90Left{ 
    /* for firefox, safari, chrome, etc. */ 
    -webkit-transform: rotate(-90deg); 
    -moz-transform: rotate(-90deg); 
    /* for ie */ 
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 
} 

JavaScript:

//jquery chain - add CSS second 
$(document).ready(function(){ 

    $('#leafTemple').smoothZoom({ 
     width: 480, 
     height: 360 
    }).addClass('rotate90Left'); 

}); 

plugin zoom/pan tôi đang sử dụng là từ đây:

http://codecanyon.net/item/smooth-zoom-pan-jquery-image-viewer/511142

Trả lời

1

Vấn đề là, SmoothZoom sử dụng -webkit-transform để phóng to hình ảnh và đưa các dữ liệu như một inline-style vào hình ảnh, như thế này:

<img style="-webkit-transform: translate3d(0px, 0px, 0px) scale(0.46875);" /> 

Kiểu CSS đi kèm với .rotate90left của bạn sẽ bị ghi đè theo kiểu nội tuyến.

Một giải pháp: Xoay wrapper, không phải là hình ảnh bản thân ...

+0

Bạn có nghĩa là làm một cái gì đó giống như đặt một thẻ div xung quanh hình ảnh và sử dụng '.rotate90Left' CSS lớp về điều đó? – Scot

+0

Đó là một cách để khắc phục sự cố này. Quấn một div xung quanh nó và xoay nó. Vì vậy, nó nên xoay nội dung. Hoặc bạn phải tinh chỉnh jQuery Plugin ... – michelgotta

+0

Ok ... rất gần ... tôi đã xóa lớp trực tiếp vào hình ảnh và sử dụng div, như vậy: '$ ('# rotateMe'). AddClass (' rotate90Left ') '. Điều này làm việc cho hầu hết các phần. điều duy nhất là các nút là một phần của plugin cũng được xoay. Tôi nghĩ rằng tôi có thể làm việc xung quanh nếu cần thiết, nhưng nếu bạn có bất kỳ suy nghĩ về làm thế nào để có được các nút để ở trong cùng một vị trí, tôi muốn được tất cả các tai. Cảm ơn một tấn! – Scot

Các vấn đề liên quan