Trong câu trả lời cho:
Alas, JavaScript đơn giản là không có khả năng giải nén các thuộc tính của hình ảnh bạn muốn làm một cái gì đó như thế này. Tuy nhiên, có thể có sự cứu rỗi dưới dạng phần tử HTML được kết hợp với một chút kịch bản phía máy chủ. ...
< ? (open php)
$large_image = 'path/to/large_image';
$full_w = imagesx($large_image);
$full_h = imagesy($large_image);
(close php) ? >
Điều này có thể được thực hiện trong Javascript, chỉ cần google một chút:
var newimage = new Image();
newimage.src = document.getElementById('background').src;
var height = newimage.height;
var width = newimage.width;
này tạo ra một hình ảnh mới từ một trong hiện tại và chụp theo cách này trong kịch bản java bản gốc các thuộc tính chiều cao và chiều rộng của hình ảnh gốc (không phải là một id'ed làm nền.
Trả lời:
Các thuộc tính chiều rộng/chiều cao của đối tượng hình ảnh của tài liệu chỉ đọc. Nếu bạn có thể thay đổi chúng, tuy nhiên, bạn sẽ chỉ squish khung, không cắt khung lên như bạn mong muốn. Loại thao tác hình ảnh bạn muốn không thể được thực hiện với javascript phía máy khách. Tôi đề nghị cắt hình ảnh lên trên máy chủ, hoặc che phủ một div trên hình ảnh để ẩn các phần bạn không muốn hiển thị.
...
var newimage = new Image();
newimage.src = document.getElementById('background').src;
var height = newimage.height;
var width = newimage.width;
newimage.style.height = '200px';
newimage.style.width = '200px';
newimage.height = '200px';
newimage.width = '200px';
và nếu muốn:
newimage.setAttribute('height','200px');
Các đôi newimage.style.height và newimage.height là cần thiết trong một số trường hợp để đảm bảo rằng một trình duyệt IE sẽ hiểu trong thời gian mà hình ảnh được thay đổi kích thước (bạn sẽ làm cho điều đó ngay sau đó, và quá trình xử lý IE nội bộ quá chậm cho điều đó.)
Cảm ơn kịch bản trên Tôi thay đổi và thực hiện trên http://morethanvoice.net/m1/reader13.php (menu chuột phải ... mouseover zoom lent) chính xác ngay cả trong IE, nhưng như bạn sẽ thấy quá trình xử lý ảnh mousemove quá nhanh đối với IE kiểu cũ, làm cho vị trí này chỉ một lần. Trong mọi trường hợp, bất kỳ ý tưởng tốt đều được chào đón.
Nhờ tất cả sự quan tâm của bạn, hy vọng rằng các mã ở trên có thể giúp ai đó ...
Claudio Klemp http://morethanvoice.net/m1/reader13.php
VERY COOL. Làm việc gần như ngay lập tức. Chỉ có vấn đề với mã của bạn là img.style.top đang sử dụng tham số 'x' khi nó nên sử dụng 'y', điều tương tự cho bên trái. Khác hơn thế, làm việc như một say mê! –
D'oh! Lemme sửa chữa điều đó. :-) –
Chỉ để cho vui, tôi cũng đã thay đổi setViewport sao cho chiều rộng và chiều cao có thể được bỏ qua nếu bạn không muốn thay đổi chúng. –