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实现的listview效果
Apr 28 Javascript
向fckeditor编辑器插入指定代码的方法
May 25 Javascript
JavaScript 获取事件对象的注意点
Jul 29 Javascript
精通JavaScript 纠正 cleanWhitespace函数
Mar 11 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 Javascript
JS阻止用户多次提交示例代码
Mar 26 Javascript
javascript事件冒泡实例分析
May 13 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
慕课网题目之js实现抽奖系统功能
Sep 19 Javascript
JavaScript实现网页跨年倒计时
Dec 02 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
Protoss建筑一览
2020/03/14 星际争霸
php&amp;java(三)
2006/10/09 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
python文件写入实例分析
2015/04/08 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Python tcp传输代码实例解析
2020/03/18 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
高级工程师岗位职责
2013/12/15 职场文书
社保转移委托书范本
2014/10/08 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
鲁迅故里导游词
2015/02/05 职场文书
创业计划书之酒店
2019/08/30 职场文书
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技