javascript实现鼠标拖动改变层大小的方法


Posted in Javascript onApril 30, 2015

本文实例讲述了javascript实现鼠标拖动改变层大小的方法。分享给大家供大家参考。具体实现方法如下:

<html>
<head>
<title>拖动改变层的大小</title>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type">
<style> {
box-sizing: border-box; moz-box-sizing: border-box
}
#testDiv { background-color: buttonface; background-repeat: repeat; 
background-attachment: scroll; color: #3969A5; height: 300px; 
left: 30px; overflow: hidden; width: 500; z-index: 2; 
border: 2px outset white; margin: 0px; padding: 2px; 
background-position: 0% 50% }
body { font-family: Verdana; font-size: 9pt }
#innerNice { background-color: white; background-repeat: repeat;
background-attachment: 
scroll; color: #3969A5; height: 100%; overflow: auto; 
width: 100%; border: 2px inset white; padding: 8px; 
background-position: 0% 50% }
</style>
<SCRIPT language=javascript>
var theobject = null; 
function resizeObject() {
this.el = null; //pointer to the object
this.dir = ""; //type of current resize (n,s,e,w,ne,nw,se,sw)
this.grabx = null; //Some useful values
this.graby = null;
this.width = null;
this.height = null;
this.left = null;
this.top = null;
}
function getDirection(el) {
var xPos, yPos, offset, dir;
dir = "";
xPos = window.event.offsetX;
yPos = window.event.offsetY;
offset = 8; //The distance from the edge in pixels
if (yPos<offset) dir += "n";
else if (yPos > el.offsetHeight-offset) dir += "s";
if (xPos<offset) dir += "w";
else if (xPos > el.offsetWidth-offset) dir += "e";
return dir;
}
function doDown() {
var el = getReal(event.srcElement, "className", "resizeMe");
if (el == null) {
theobject = null;
return;
} 
dir = getDirection(el);
if (dir == "") return;
theobject = new resizeObject();
theobject.el = el;
theobject.dir = dir;
theobject.grabx = window.event.clientX;
theobject.graby = window.event.clientY;
theobject.width = el.offsetWidth;
theobject.height = el.offsetHeight;
theobject.left = el.offsetLeft;
theobject.top = el.offsetTop;
window.event.returnValue = false;
window.event.cancelBubble = true;
}
function doUp() {
if (theobject != null) {
theobject = null;
}
}
function doMove() {
var el, xPos, yPos, str, xMin, yMin;
xMin = 8; //The smallest width possible
yMin = 8; // height
el = getReal(event.srcElement, "className", "resizeMe");
if (el.className == "resizeMe") {
str = getDirection(el);
//Fix the cursor
if (str == "") str = "default";
else str += "-resize";
el.style.cursor = str;
}
//Dragging starts here
if(theobject != null) {
if (dir.indexOf("e") != -1)
theobject.el.style.width = Math.max(xMin, theobject.width + window.event.clientX - theobject.grabx) + "px";
if (dir.indexOf("s") != -1)
theobject.el.style.height = Math.max(yMin, theobject.height + window.event.clientY - theobject.graby) + "px";
if (dir.indexOf("w") != -1) {
theobject.el.style.left = Math.min(theobject.left + window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) + "px";
theobject.el.style.width = Math.max(xMin, theobject.width - window.event.clientX + theobject.grabx) + "px";
}
if (dir.indexOf("n") != -1) {
theobject.el.style.top = Math.min(theobject.top + window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) + "px";
theobject.el.style.height = Math.max(yMin, theobject.height - window.event.clientY + theobject.graby) + "px";
}
window.event.returnValue = false;
window.event.cancelBubble = true;
} 
}
function getReal(el, type, value) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
if (eval("temp." + type) == value) {
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
document.onmousedown = doDown;
document.onmouseup = doUp;
document.onmousemove = doMove;
</SCRIPT>
</head>
<body>
<div class="resizeMe" id="testDiv">
<div id="innerNice">
<p align="center"> </p>
<p align="center">
请在边框处拖动鼠标</p>
<p> </p>
<p> </p>
<p> </p>
</div>
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
JS自动缩小超出大小的图片
Oct 12 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 Javascript
中文输入法不触发onkeyup事件的解决办法
Jul 09 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
一些实用性较高的js方法
Apr 19 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
理解JavaScript原型链
Oct 25 Javascript
JS仿淘宝搜索框用户输入事件的实现
Jun 19 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 #Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
Apr 30 #Javascript
jQuery层动画定位滑动效果的方法
Apr 30 #Javascript
jquery中$each()方法的使用指南
Apr 30 #Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 #Javascript
javascript实现checkbox全选的代码
Apr 30 #Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 #Javascript
You might like
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
JS模拟自动点击的简单实例
2013/08/08 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
python使用webbrowser浏览指定url的方法
2015/04/04 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Python转换时间的图文方法
2019/07/01 Python
python实现两个文件夹的同步
2019/08/29 Python
pygame实现五子棋游戏
2019/10/29 Python
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
外贸采购员求职的自我评价
2013/11/26 职场文书
自主招生自荐书
2013/11/29 职场文书
房屋买卖协议书
2014/04/10 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
优秀毕业生求职信
2014/06/05 职场文书
统计员岗位职责
2015/02/11 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
活动总结书怎么写
2015/05/11 职场文书
文明礼仪主题班会
2015/08/13 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Redis基本数据类型List常用操作命令
2022/06/01 Redis