原生JS制作一个好玩的垃圾箱效果

6 篇文章 0 订阅
4 篇文章 0 订阅

html部分:

<div>
			<div class="dustbin">
			垃<br />
			圾<br />
			箱<br />
			</div>
			<div class="dragbox">
				<div class="draglist" draggable="true">列表1</div>
				<div class="draglist" draggable="true">列表2</div>
				<div class="draglist" draggable="true">列表3</div>
				<div class="draglist" draggable="true">列表4</div>
				<div class="draglist" draggable="true">列表5</div>
				<div class="draglist" draggable="true">列表6</div>
			</div>
		</div>
		<div class="dragremind"></div>

css部分:

body {
				font-size: 84%;
			}
			
			.dustbin {
				width: 100px;
				height: 260px;
				line-height: 1.4;
				background: gray;
				font-size: 36px;
				font-family: "微软雅黑", "microsoft yahei";
				text-align: center;
				text-shadow: -1px -1px #bbb;
				float: left;
			}
			
			.dragbox {
				width: 500px;
				padding-left: 10px;
				float: left;
			}
			
			.draglist {
				padding: 8px;
				margin-bottom: 5px;
				border: 2px dashed #ccc;
				background: #eee;
				cursor: move;
			}
			
			.draglist:hover {
				border-color: #cad5eb;
				background: #f0f3f9;
			}
			
			.dragremind {
				padding-top: 2em;
				clear: both;
			}

js部分:

var $ = function(selector){
		if(!selector){ return []; }
		var arrEle = [];
		if (document.querySelectorAll){
			arrEle = document.querySelectorAll(selector);
		}else{
			var oAll = document.getElementsByTagName("div"), lAll = oAll.length;
			if(lAll){
				var i = 0;
				for (i; i<lAll; i+=1 ) {
					if (/^\./.test(selector)) {
						if (oAll[i].className === selector.replace(".","")) {
							arrEle.push(oAll[i]);
						}
					}else if (/^#/.test(selector)) {
						if (oAll[i].id === selector.replace("#","")) {
							arrEle.push(oAll[i]);
						}
					}
				}
			}
		}
		return arrEle;
	};
	var eleDustbin = $(".dustbin")[0],eleDrags = $(".draglist"), lDrags = eleDrags.length,eleRemind = $(".dragremind")[0], eleDrag = null;
	for (var i = 0; i<lDrags; i+=1) {
		eleDrags[i].onselectstart = function(){
			return false;
		};
		eleDrags[i].ondragstart = function(ev){
			ev.dataTransfer.effectAllowed = "move";
			ev.dataTransfer.setData("text", ev.target.innerHTML);
			ev.dataTransfer.setDragImage(ev.target, 0, 0);
			eleDrag = ev.target;
			return true;
		};
		eleDrags[i].ondragend = function(ev){
			ev.dataTransfer.clearData("text")
			eleDrag = null;
			return false;
		};
	}
	eleDustbin.ondragover = function(ev){
		ev.preventDefault();
		return true;
	};
	eleDustbin.ondragenter = function(ev){
		this.style.color = "#ffffff";
		return true;
	};
	eleDustbin.ondrop = function(ev){
		if(eleDrag){
			eleRemind.innerHTML += '<strong>"'+eleDrag.innerHTML+ '"</strong>被扔进了垃圾箱<br>';
			eleDrag.parentNode.removeChild(eleDrag);
		}
		this.style.color = "#000000";
		return false;
	};

最终效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值