温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

js面向对象练习(一):拖曳效果

发布时间:2020-07-20 07:04:29 来源:网络 阅读:853 作者:小旭依然 栏目:开发技术

html:

<!DOCTYPE html> <html> <head> <meta charset= "utf-8"> <title></title> <!--<script src="jquery-1.9.1.min.js"></script>--> <style> #drag{	background: red;	width: 200px;	height: 200px;	cursor: move;	position: fixed;	top: 0;	left: 0; } </style> </head> <body>	<div id="drag"></div> <script src="scripts/test.js"></script> </body> </html>

js:

window.onload = function(){	var drag = new Drag("drag");	drag.init(); } //获取浏览器窗口宽度 function getInner(){	var pageWidth = window.innerWidth;	var pageHeight = window.innerHeight;	if(typeof pageWidth != "number"){	if(document.compatMode == "CSS1Compat"){	pageWidth = document.documentElement.clientWidth;	pageHeight = document.documentElement.clientHeight;	}else {	pageWidth = document.body.clientWidth;	pageHeight = document.body.clientHeight;	}	}	return {width:pageWidth,height:pageHeight}; } //构造函数 function Drag(id){	this.obj = document.getElementById("drag");	this.disx = 0;	this.disy = 0; } Drag.prototype.init = function(){	//this 指针	var me = this;	this.obj.||event;	me.onmouseDown(e);	//阻止默认事件	return false;	} } Drag.prototype.onmouseDown = function(e){	//this指针	var me = this;	this.disx = e.clientX - this.obj.offsetLeft;	this.disy = e.clientY - this.obj.offsetTop;	document.||event;	me.onmouseMove(e);	}	document.onmouseup = function(){	me.mouseUp();	} } Drag.prototype.onmouseMove = function (e){	//this指针	var lf = e.clientX - this.disx;	var tp = e.clientY - this.disy;	if(lf < 0){ //防止拖曳层超出左边界	lf = 0;	}else if(lf > getInner().width - this.obj.offsetWidth){	lf = getInner().width - this.obj.offsetWidth;//防止拖曳层超出右边界	}	if(tp < 0){	tp = 0;//防止拖曳层超出上边界	}else if(tp > getInner().height - this.obj.offsetHeight){	tp = getInner().height - this.obj.offsetHeight;//防止拖曳层超出下边界	}	this.obj.style.left = lf + 'px';	this.obj.style.top = tp + 'px'; }; Drag.prototype.mouseUp = function (){  document.onmousemove = null;  document.onmouseup = null; };


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI