我制作了一个脚本,可以在画布上添加图像和文本框。为了使文本框显示在图像上,我需要将CSS应用于图像。因此,我决定将div <img>
与图片分开,<text>
为文本。
这会产生两个问题。当我第一次添加图像和文本时,两个元素被认为是分开的,我只能拖动图像或文本,而不是同时拖动两个元素。此外,当我添加另一个图像和另一个文本框时,两个图像不会显示在彼此之上,而是文本框旁边的图像和图像旁边的图像。
所以我的问题是这个。是否有可能将这两个元素合并为一个,当产生它们时,让它们每次都以相同的方式做到这一点?
这是我为此制作的Javascript。
$(document).ready(function() {
$("#img").draggable();
$("#text").draggable();
});
function addEvent() {
$("#img").append("<img src='Sticky_Note.png'</a>")
$("#text").append(" <textarea name='comments' x-webkit-speech='x-webkit-speech'style='width:380px;height:300px; background: none; border:none; font-size:24px; color:#0033FF;font-family:comic sans ms' />")
}
如果这不是足够的信息(我很抱歉,抱歉),我已经找到了一个前沿的链接here.
感谢您的帮助!
答案 0 :(得分:0)
尝试在图片和文字元素周围创建包装<div>
,例如<div id="#wrapper">
。然后,您可以执行以下操作:
$('#wrapper').draggable();
您的addEvent代码如下所示:
function addEvent() {
$("#wrapper").append("<img src='Sticky_Note.png'</a>");
$("#wrapper").append(" <textarea name='comments' x-webkit-speech='x-webkit-speech'style='width:380px;height:300px; background: none; border:none; font-size:24px; color:#0033FF;font-family:comic sans ms' />");
}
答案 1 :(得分:0)
您的实施存在一些问题,我会忽略基本的文档问题,因为我认为您正在组织一个快速示例:)
当你附加一个新的'note'时它不能单独移动,它是可移动的容器,所以它们只是堆叠起来,因为你只是向软木板容器添加更多内容,即:另一个textarea / image,然后是另一个textarea和/或图像。
我已经在pastebin here上提出了一个解决方案,请随时查看,希望它有助于指出正确的方向。
实际上,我也会为后人嵌入它
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<style>
#corkboard { position: relative; }
#corkboard textarea { position: absolute; width: 380px; height: 300px; top: 100px; left: 60px; background: none; border: none; font-size: 24px; color: #03f; font-family: 'comic sans ms', serif; }
#corkboard img { position: absolute; }
.corkboard-item {
position: absolute;
float: left;
width: 500px;
height: 500px;
}
</style>
<script>
$( document ).ready( function() {
// Create our corkboard item
//
$corkboard_item = $( '<div></div>' );
$corkboard_item
.addClass( 'corkboard-item' )
.append( '<img src="http://www.bookofsam.com/corkboard/Sticky_Note.png" />' )
.append( '<textarea name="comments" x-webkit-speech="x-webkit-speech">Enter your note</textarea>' );
// Counter goodness
$x = 1;
// Make sure the one we click is always at the top
//
$( 'img, textarea' ).live( 'click', function( e ) {
e.preventDefault();
$( '.corkboard-item' ).each( function() {
$( this ).css({ 'z-index':1 });
});
$( this )
.parent()
.css({
'z-index':2
})
});
// Add one when we click the button
//
$( 'a.add-item' ).live( 'click', function( e ) {
e.preventDefault();
var item = $corkboard_item.clone();
$( item )
.find( 'textarea' )
.attr({
'name' : ( 'comment-' + $x )
});
$x++;
$("#corkboard").append( $( item ).draggable() );
});
});
</script>
</head>
<body>
<p>CORKBOARD TEST - 0.8.555 </p>
<a href="#" class="add-item"><img src='http://www.bookofsam.com/corkboard/Note_Scale.png' align="right" /></a>
<div id="corkboard"></div>
</html>
考虑到这一点,我应该将'note'图像作为背景图像放在'corkboard-item'上。
:)
NBSP;