ES6 쓰기 드래그

1554 단어 ES6



	
	<link rel="stylesheet" type="text/css" href="drag.css"/>


	<div id="div1">div1</div>
	<div id="div2">div2</div>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"/>
<script type="text/javascript">
class Drag {
	constructor(id) {
		this.oDiv = document.querySelector(id);
		this.disX = 0;
		this.disY = 0;
		this.init();
	}
	init() {
		console.log(this)
		console.log(this.oDiv)
		this.oDiv.onmousedown = function(ev) {
			console.log('onmousedown')

			//  div 
			this.disX = ev.clientX - this.oDiv.offsetLeft;
			this.disY = ev.clientY - this.oDiv.offsetTop;

			document.onmousemove = this.fnMove.bind(this);
			document.onmouseup = this.fnUp.bind(this);

			//  
			return false;
		}.bind(this);
	}
	fnMove(ev) {
		this.oDiv.style.left = ev.clientX - this.disX + 'px';
		this.oDiv.style.top = ev.clientY - this.disY + 'px';
	} 
	fnUp() {
		document.onmousemove = null;
		document.onmouseup = null;
	}
}
new Drag('#div1')

// limitDrag drag , 
class limitDrag extends Drag {
	fnMove(ev) {
		super.fnMove(ev);

		//  
		if(this.oDiv.offsetLeft < 0) {
			this.oDiv.style.left = 0;
		}
		if(this.oDiv.offsetTop < 0) {
			this.oDiv.style.top = 0;
		}
	}
}

new limitDrag('#div2')
</script>

</code></pre> 
  <p> </p> 
 </div> 
</div>
                            </div>
                        </div>

좋은 웹페이지 즐겨찾기