Для фотографии веб-страницы, я реализую просмотр изображений, который позволяет выбрать область интереса уменьшенного эталонного изображения путем перетаскивания полупрозрачный прямоугольника на опорном изображение. Выбранная область непрерывно «зеркально отображается» для второго средства просмотра изображений, которое показывает область с коэффициентом увеличения 100%.
Мое решение использует XHTML / CSS и jQuery, и у меня есть базовая версия, которая уже работает - но страдает от проблемы при инициализации, которую я не могу решить. Я установил область интереса как div
, которая сделана перетаскиваемой с помощью перетаскиваемого пользовательского интерфейса jQuery. Чтобы ограничить область интереса для изображения, я использовал свойство containment
.
Первоначально, однако, div показывается за пределами изображения. Как только я начинаю перетаскивать интересующую область div
, div
привязывается к внутренней части изображения, и сдерживание должным образом применяется в дальнейшем. Весь пример кода, который я нашел, демонстрирует содержание с вложенными div
s, что не относится к моему случаю, поскольку, насколько мне известно, изображение (XHML img
) не может содержать другие элементы.
Есть ли способ, как я могу обеспечить, чтобы перетаскиваемая область интереса div
уже содержалась, когда веб-страница первоначально отображается?
Я извлек минимальный код, чтобы проиллюстрировать проблему из моего кода, см. Ниже.
Буду рад любой подсказке.
Ура,
Christian
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#zoom_area").draggable( {
containment: '#the_image'
});
});
</script>
<style type="text/css">
#the_image {
width: 640px;
height: 427px;
}
#zoom_area {
width: 50px;
height: 50px;
background-color: #bbb;
border: 1px dashed black;
opacity: 0.6;
}
</style>
</head>
<body>
<div id="image_viewer">
<img id="the_image" src="img/img1.jpg" alt="reference image" />
</div>
<div id="zoom_area">
</div>
</body>
</html>