javascript实现淡蓝色的鼠标拖动选择框实例


Posted in Javascript onMay 09, 2015

本文实例讲述了javascript实现淡蓝色的鼠标拖动选择框。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
#rectBox
{
background:#CCFFFF;
border:2px solid #0099FF;
filter:alpha(opacity=30);
opacity:0.3;
position:absolute;
}
</style>
<head>
<title>一个鼠标选择框</title>
<script type="text/javascript">
function Rect()
{
this.doc = document.documentElement;
if(!this.doc) return;
this.startX = '';
this.startY = '';
this.rect = null;
rectSelf = this;
}
Rect.prototype.down = function(e)
{
var e = e?e:window.event;
rectSelf.startX = e.clientX?e.clientX + document.body.scrollLeft:e.pageX;
rectSelf.startY = e.clientY?e.clientY + document.body.scrollTop:e.pageY;
rectSelf.showRect(true);
}
Rect.prototype.up = function(e)
{
rectSelf.rectBox.style.width = '0px';
rectSelf.rectBox.style.height = '0px';
rectSelf.showRect(false);
}
Rect.prototype.move = function(e)
{
if(rectSelf.rectBox)
{
var currentX = e.clientX?e.clientX + rectSelf.doc.scrollLeft:e.pageX;
var currentY = e.clientY?e.clientY + rectSelf.doc.scrollTop:e.pageY;
rectSelf.rectBox.style.width = Math.abs(currentX - rectSelf.startX) + 'px';
rectSelf.rectBox.style.height = Math.abs(currentY - rectSelf.startY) + 'px';
if(currentX - rectSelf.startX < 0)
{
rectSelf.rectBox.style.left = currentX + 'px';
}
if(currentY - rectSelf.startY < 0)
{
rectSelf.rectBox.style.top = currentY + 'px';
}
//document.title = "left:"+currentX + 'px '+"top:"+currentY + 'px ';
}
}
Rect.prototype.showRect = function(bool)
{
if(bool)
{
if(!this.rectBox)
{
this.rectBox = document.createElement("div");
this.rectBox.id = "rectBox";
document.body.appendChild(this.rectBox);
}
this.rectBox.style.display = "block";
this.rectBox.style.left = this.startX + 'px';
this.rectBox.style.top = this.startY + 'px'; 
this.addEventListener(this.doc , 'mousemove' , this.move);
}
else
{
if(this.rectBox)
{
this.rectBox.style.display = "none";
}
this.removeEventListener(this.doc , 'mousemove' , this.move);
}
}
Rect.prototype.addEventListener = function(o,e,l) 
{
if (o.addEventListener) {
o.addEventListener(e,l,false);
} else if (o.attachEvent) {
o.attachEvent('on'+e,function() {
l(window.event);
});
}
}
Rect.prototype.removeEventListener = function(o,e,l) 
{
if (o.removeEventListener) {
o.removeEventListener(e,l,false);
} else if (o.detachEvent) {
o.detachEvent('on'+e,function() {
l(window.event);
});
}
}
window.onload = function()
{
var oRect = new Rect();
oRect.addEventListener(oRect.doc , 'mousedown' , oRect.down);
oRect.addEventListener(oRect.doc , 'mouseup' , oRect.up);
}
</script>
</head>
<body>
<h1>拖动你的鼠标就会出现选择框</h1>
</body>
</html>

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

Javascript 相关文章推荐
用javascript来实现动画导航效果的代码
Dec 16 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
js和jquery如何获取图片真实的宽度和高度
Sep 28 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
Apr 23 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
Selenium执行JavaScript脚本的方法示例
Dec 31 Javascript
javasript实现密码的隐藏与显示
May 08 #Javascript
jquery实现动态改变div宽度和高度
May 08 #Javascript
jquery右下角自动弹出可关闭的广告层
May 08 #Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
May 08 #Javascript
JavaScript实现自动变换表格边框颜色
May 08 #Javascript
JavaScript基于setTimeout实现计数的方法
May 08 #Javascript
jQuery基于图层模仿五星星评价功能的方法
May 07 #Javascript
You might like
PHP删除HTMl标签的实现代码
2013/06/30 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
JS日历 推荐
2006/12/03 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
javascript正则表达式总结
2016/02/29 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
python实现停车管理系统
2018/11/30 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
大学生求职自我评价
2014/01/16 职场文书
高校教师岗位职责
2014/03/18 职场文书
企业总经理任命书
2014/06/05 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
Java 异步任务计算FutureTask
2022/04/28 Java/Android