一种使用Javascript和Jquery创建单击并拖动“画布”用户区域的方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一种使用Javascript和Jquery创建单击并拖动“画布”用户区域的方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1779字,纯文字阅读大概需要3分钟。
内容图文
![一种使用Javascript和Jquery创建单击并拖动“画布”用户区域的方法?](/upload/InfoBanner/zyjiaocheng/652/846b33716b1240e4beb81ad40ba637be.jpg)
我一直在拼凑一个我的项目,关键方面之一是可拖动的“画布”,用户可以在其中创建/销毁/拖放子元素.我在下面创建了一个图:
“画布”将用户启动到中间的某个位置,从而允许他们单击并拖动以浏览边缘.内容只能在“可见的画布”窗口中查看.
看到用户创建的元素也将是可拖动的,我正在考虑也许仅在用户按住空格键时才将“画布拖动”限制为……但在此之前,我需要集思广益的方法来帮助完成“画布拖动”.
我想知道是否可以将Jquery UI Draggable的某些巧妙实现也用于画布,而不仅仅是其子元素.有什么想法吗?
谢谢!
编辑:
因此,为了尽量避免“这么费力地思考”,我概述了一种看起来“过于简单以至于无法实现”的方法.我从上面采取了相同的前提,但是“ canvas”是一个比例较大的容器中的可拖动div:
是否有人对nested draggables(此人有问题,)和/或可拖动对象大于其查看空间有任何经验?该模型需要起作用,因为画布中的可拖动子元素也起作用.
谢谢!
. . .
更新:
使用Mapbox和jQuery UI Draggable,我成功创建了带有可拖动“节点”的可拖动“画布”.问题在于,拖动“节点”也会拖动“画布”,从而产生令人敬畏的,但不需要的(至少在此阶段)视差效果.
jQuery的:
$(function() {
$('#viewport').mapbox();
$('.node').draggable({containment:"#canvas", scroll:false});
});
HTML:
<div id="viewport">
<div id="canvas" style="background: url('image/1k_square.jpg') no-repeat; width: 1000px; height: 1000px;">
<div class="node"> </div>
</div>
</div> <!--viewport-->
CSS:
.node {
position : relative;
margin : 0 auto;
background : rgba(255,255,255,.2);
width : 118px;
height : 118px;
z-index : 100;
border : 1px dotted black;
}
#viewport {
width: 520px;
height: 520px;
margin: 20px auto;
overflow: hidden;
}
我已经尝试使用停止传播:
$(‘.node’).click(function(e){e.stopPropagation();});
但这什么也没做.一点帮助? :D
解决方法:
你是如此的亲密.但是请考虑一下,当您拖动鼠标时会发生什么……它是从鼠标按下开始的. “单击”是指按下鼠标并随后按下鼠标.如果停止mousedown的传播,而不是单击,您将获得所需的效果.
内容总结
以上是互联网集市为您收集整理的一种使用Javascript和Jquery创建单击并拖动“画布”用户区域的方法?全部内容,希望文章能够帮你解决一种使用Javascript和Jquery创建单击并拖动“画布”用户区域的方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。