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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
常用的javascript function代码
May 23 Javascript
JavaScript 判断日期格式是否正确的实现代码
Jul 04 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
js Math 对象的方法
2013/09/01 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
Python标准库与第三方库详解
2014/07/22 Python
Python中logging模块的用法实例
2014/09/29 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python实现关键词提取的示例讲解
2018/04/28 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
恶意软件的定义
2014/11/12 面试题
总经理工作职责范文
2014/03/14 职场文书
经典安踏广告词
2014/03/21 职场文书
安全生产宣传标语
2014/06/06 职场文书