HTML5中利用JavaScript实现拖放(来回)的案例

拖放是 HTML5 中非常常见的功能。 

注意: 默认情况下,元素是不可拖动的,为了让元素可拖动,需要将 HTML5 的draggable 属性设置为true。

提示: 链接和图片默认是可拖动的,不需要 draggable 属性。

实现来回拖放的思路:

  1. 建立两个框(左框和右框),左框作为图像拖动回来时的容器不设置背景色,右框作为图像拖动出去的容器。

开始示范:

以下是CSS样式

body {
	margin:60px;
	background:#fff;
	position:relative;
}
#logo{
	width:300px;
	height:200px;
	background:url(logo-mask.png) center 50% no-repeat;
	position:absolute;
	left:0;
}/*需要拖动的图标*/
#box0{
	width:300px;
	height:200px;
	position:absolute;
	left: :0;
	z-index: -1;/*设置为最底层*/
}/*左侧框作为拖动回来的容器*/
#box{
	width:300px;
	height:200px;
	background:#d4efdf;
	border-radius:10px;/*设置边框弧度*/
	border:5px dashed #27AE60;
	position:absolute;
	right:0;
}/*右侧框作为拖动出去的容器*/

以下是主体部分:

Body部分
<body>
<div id="logo"></div>
<div id="box0"></div><!--左侧框作为拖动回来的容器-->
<div id="box"></div><!--右侧框作为拖动出去的容器-->
</body>
以下是JavaScript部分

<script type="text/javascript">
var logo = document.getElementById("logo");
var box = document.getElementById("box");
logo.draggable = true;/*使logo图标可拖动,因为元素默认是不可拖动的。*/
box.ondragover = function(ev){
	ev.preventDefault();
}/*去除事件的默认行为,因为当logo拖动到右框中时,会不断触发box的ondragover事件,而该事件默认是无法将数据或元素放置到其他元素中的,所以需要取消该事件的默认行为。以下的box0的ondragover事件同理。*/
box.ondrop = function(ev){
	box.appendChild(logo);
}/*将图标移动到右侧框中*/
box0.ondragover = function(ev){
	ev.preventDefault();
}
box0.ondrop = function(ev){
	box0.appendChild(logo);	
}
</script>

以下是效果图:

右侧框(即拖动出去后的效果):;左侧框(即拖动回来后的效果):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值