Если бы мне нужно было создать конструктор форм, я бы сделал все элементы div с изображением фактического виджета в качестве фонового изображения css, таким образом вы можете перетаскивать представление виджета по форме, не активируя его и не имея каких-либо проблем с наложением.
Если вы действительно хотите, чтобы он выглядел как готовый продукт, вы можете иметь фактический виджет, вложенный в div, но невидимый, когда пользовательская мышь находится внутри div, когда пользователь перемещает мышь из div, затем снова установите виджет видимым.
DC
Да, я знал, что при растяжении фоновое изображение будет выглядеть неправильно. Я подумал об этом по дороге домой. Лучшим методом было бы создать сэндвич с виджетами, поместив виджет между двумя div, нижний div контролирует размер, а положение верха предотвращает активацию виджета.
<html>
<head>
<script language="JavaScript" type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script language="JavaScript" type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"></script>
<style type="text/css">
<!--
.widget {
height: 100%;
width: 100%;
}
.widget_overlay {
border: thin solid #FF0000;
position: absolute;
top: 1px;
left: 1px;
right: 1px;
bottom: 1px;
right: 1px;
visibility:visible
}
.sz_controller {
position:absolute;
width:365px;
height:61px;
left: 142px;
top: 75px;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function ShowHide(button,id){
elem = document.getElementById(id)
if (elem.style.visibility=='hidden') {
elem.style.visibility='visible';
button.value="Hide Overlay";
} else {
elem.style.visibility = 'hidden';
button.value="Show Overlay";
}
}
</script>
</head>
<body>
<input type="button" name="Button" value="Hide Overlay" onClick="ShowHide(this,'widget_overlay')">
<div id="draggable" class="sz_controller" style=""><select class="widget" name="test">
<option>test 1</option>
<option>test 2</option>
<option>test 3</option>
</select><div id="widget_overlay" class="widget_overlay"></div></div>
<script>
$(function() {
$( "#draggable" ).draggable();
});
</script>
</body>
</html>
Вышеупомянутое будет работать в firefox
Нажатие кнопки скрывает оверлейный div, позволяющий тестировать виджет. Вы можете перетаскивать объект по экрану, логика изменения размера не реализована.
DC
person
DeveloperChris
schedule
31.01.2011