`
keimon
  • 浏览: 74793 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

鼠标移动形成选择框-选择checkbox

阅读更多

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<style>
*{
  margin:0;
  padding:0;
}
li{
  list-style:none;
}
body    
{    
  -moz-user-focus:ignore;     /*ff中禁止鼠标选择*/
  -moz-user-input:disabled;    
  -moz-user-select:none;    
}  
#content{
  margin:0 auto;
  text-align:center;
  position:relative;
  background-color:#ddd;
  width:1200px;
  height:500px;
}
#checks{
  position:absolute;
  left:200px;
  top:100px;
  z-index:1;
  width:100px;
  height:350px;
  border:1px solid #ccc;
}

</style>
</head>

<body>
<div id="content">
  <div id="checks">
  <form id="form1">
    <ul>
   <li><label for="1">编号01:</label><input id="1" type="checkbox" /></li>
   <li><label for="2">编号02:</label><input id="2" type="checkbox" /></li>
   <li><label for="3">编号03:</label><input id="3" type="checkbox" /></li>
   <li><label for="4">编号04:</label><input id="4" type="checkbox" /></li>
   <li><label for="5">编号05:</label><input id="5" type="checkbox" /></li>
   <li><label for="6">编号06:</label><input id="6" type="checkbox" /></li>
   <li><label for="7">编号07:</label><input id="7" type="checkbox" /></li>
   <li><label for="8">编号08:</label><input id="8" type="checkbox" /></li>
   <li><label for="9">编号09:</label><input id="9" type="checkbox" /></li>
   <li><label for="10">编号10:</label><input id="10" type="checkbox" /></li>
   <li><label for="11">编号11:</label><input id="11" type="checkbox" /></li>
   <li><label for="12">编号12:</label><input id="12" type="checkbox" /></li>
   <li><label for="13">编号13:</label><input id="13" type="checkbox" /></li>
   <li><label for="14">编号14:</label><input id="14" type="checkbox" /></li>
   <li><label for="15">编号15:</label><input id="15" type="checkbox" /></li>
   <li><label for="16">编号16:</label><input id="16" type="checkbox" /></li>
   <li><label for="17">编号17:</label><input id="17" type="checkbox" /></li>
   <li><label for="18">编号18:</label><input id="18" type="checkbox" /></li>
   <li><label for="19">编号19:</label><input id="19" type="checkbox" /></li>
 </ul>
  </form>
  </div>
</div>

<script>
/*
* 鼠标移动形成的选择框来选择checkbox;
* made by keimon
* 2013-03-20
*/
$(function(){
  //设置content的宽度是窗口宽度;高度是窗口高度;
    $('#content').width($(window).width());
    $('#content').height($(window).height());

 
  //取消鼠标移动对元素的选择作用;
  document.onselectstart = document.oncontextmenu = function(){return false}
  //x1,y1是鼠标按下时光标的位置,x2,y2是鼠标移动时光标的位置;
  var x1=0, x2=0, y1=0, y2=0;
  //w是选择框的宽度,h是选择框的高度,l是选择框离左边窗口的距离,t是选择框离上边窗口的距离;
  var w=0, h=0, l=0, t=0;
  //用于判断鼠标是否按下;
  var isDown = false;
  //box用于放置选择框div;
  var box=null;
 
  //选择框的样式
  var boxStyle = {
       width:'10px',
       height:'10px',
       top:'0px',
       height:'0px',
       position:'absolute',
       border:'1px solid #CCCCCC',
       'background-color':'#FFFFCC',
       opacity:'0.3',
       filter:'alpha(opacity:30)',
       'z-index':'10'
  }
 
  $(document).mousedown(function(event){
     isDown = true;
     x1 = event.pageX;
  y1 = event.pageY;
  //创建选择框;
  box = document.createElement('div');
     $(box).css(boxStyle);
     $('#content').append($(box));
  })
 
  $(document.body).mousemove(function(event){
    if(isDown){
    x2 = event.pageX;
    y2 = event.pageY;
    w = Math.abs(x1-x2);
    h = Math.abs(y1-y2);
    l = x1<x2 ? x1:x2;
    t = y1<y2 ? y1:y2;
    $(box).css({left:l+'px',top:t+'px',width:w+'px',height:h+'px'});
 }
  })
 
  $(document).mouseup(function(){
     isDown = false;
  $('#content').find($(box)).remove();
  for(var i=0; i<$('li').length; i++){
     //下面注释掉的是用原生js获得元素相对于当前窗口的位置;
     //var tt = $('li').eq(i).get(0).offsetParent.offsetTop + $('li').eq(i).get(0).offsetTop;
  //var ll = $('li').eq(i).get(0).offsetParent.offsetLeft + $('li').eq(i).get(0).offsetLeft;
  
  //jquery的offset获得元素相对于当前窗口的位置
  var tt = $('li').eq(i).offset().top;
  var ll = $('li').eq(i).offset().left;
     if(ll>l && ll<l+w && tt>t && tt<t+h){
     $('li').eq(i).find('input').attr('checked',!$('li').eq(i).find('input').attr('checked'));
  }
  }
  })
})
</script>
</body>
</html>

0
0
分享到:
评论

相关推荐

    checkbox鼠标拖拽框选

    在IT行业中,实现“checkbox鼠标拖拽框选”功能是一项常见的交互设计,它极大地提高了用户在操作大量复选框时的效率。这个功能通常应用于文件管理器、数据筛选或者自定义设置等场景,让用户能够通过鼠标拖动快速选择...

    C#鼠标框选cheakbox

    - 可能需要添加一个标记来确定是否处于框选模式,避免鼠标移动过程中误触发其他事件。 - 为了提高性能,可以使用`HitTest`方法检查checkbox是否位于矩形内,而不是简单地比较坐标。 - 考虑边界条件,确保在鼠标...

    易语言自绘选择框

    易语言自绘选择框源码,自绘选择框,测试消息,重绘_Checkbox,选择框_鼠标移动,初始化,调用旧窗口过程,GetWindowTitle,取位高,取位低,UI_API_SetWindowLong,UI_API_CallWindowProc,UI_EndPaint,UI_BeginPaint,UI_取窗口...

    JS原生双栏穿梭选择框

    在JavaScript的世界里,"JS原生双栏穿梭选择框"是一种常见的交互元素,它通常用于数据筛选、分类或分配任务等场景。这个功能的核心在于,用户可以通过选择左侧栏的选项,然后通过点击方向键(或者其他的触发方式)将...

    表单复选框checkbox美化特效

    5. **响应式设计**:在移动设备上,复选框的美化也需考虑触摸操作,确保触摸区域足够大,易于用户选择。 在提供的`index.html`文件中,应该包含了实现这些效果的HTML结构、CSS样式和可能的JavaScript代码。通过分析...

    易语言-易语言自绘选择框

    源码中的实现可能会包含易语言的事件驱动编程模型,例如响应按钮点击事件、鼠标移动事件等,以及使用GDIPlus模块的函数调用来完成实际的绘制工作。开发者需要注意的是,自绘控件需要处理好与系统默认控件的交互,...

    bootstraps 复选框样式 优化 样式修改

    利用媒体查询(media queries)可以实现复选框在移动设备和平板上的特定样式调整。 6. **自定义组件**:Bootstrap提供了一些自定义组件,如`custom-checkbox`,它们允许你完全自定义复选框的外观。通过使用这些组件...

    悬浮窗口点击checkbox选中给text文本.zip

    悬浮窗口通常指的是在网页或应用主界面之上,始终可见并可随鼠标移动的小窗口。它提供额外的信息或者功能,不干扰用户对主要内容的操作。悬浮窗口的设计可以提高用户效率,因为他们无需离开当前页面即可完成特定任务...

    简单zTree树形,支持单选、多选、移动实例

    在IT领域,尤其是在前端开发中,构建用户友好的交互界面是一项关键任务。zTree是一款流行的JavaScript库,...了解并掌握zTree的CheckBox、Radio选择以及树形移动等功能,对于提升用户体验和优化项目管理具有重要意义。

    SelectBox下拉复选框多选插件

    在IT领域,尤其是在前端开发中,"SelectBox下拉复选框多选插件"是一种常用的用户界面元素,用于提供用户友好的多选项选择功能。它结合了传统的下拉列表和复选框的特性,使得在有限的空间内,用户能够方便地筛选和...

    列表框 复选框应用例程

    可以通过重载_WM_HSCROLL或_WM_VSCROLL消息处理程序来跟踪鼠标移动。当鼠标在列表框上时,发送LB_GETITEMRECT消息获取指定索引项的矩形,然后比较鼠标坐标以确定当前项。另外,可以利用GetMessagePos函数获取鼠标...

    js 特效 5右拖动--多选框控制

    在鼠标移动时(`mousemove`),我们根据鼠标移动的距离更新元素的位置;最后,当用户释放鼠标按钮(`mouseup`),我们停止更新。 多选框(`checkbox`)是HTML中的一种表单元素,用于让用户可以选择一个或多个选项。...

    DTree & CheckBox

    在IT领域,"DTree & CheckBox"通常指的是一个JavaScript库或组件,用于创建具有复选框功能的可交互的无限层级树形结构。这个组件在Web应用中非常常见,特别是在需要展示分层数据并允许用户进行多选操作的场景下。 ...

    java画图,可实现画图的简单功能

    这里 `Myframe` 类继承了 `JFrame` 并实现了 `ActionListener`、`MouseListener` 和 `MouseMotionListener` 接口,这意味着它可以处理用户的动作事件、鼠标事件和鼠标移动事件。 ### 3. 使用 Graphics 对象绘图 在...

    纯CSS3复选框开关按钮切换特效.zip

    `:checked`伪类用于检测复选框是否被选中,`:hover`则在鼠标悬停时改变样式,`:active`则在元素被点击时应用特定样式。通过结合这些伪类,可以为不同操作状态定义不同的样式,从而实现按钮的动态效果。 在压缩包内...

    CSS定义Radio单选项和Checkbox复选框样式有效代码

    在网页设计中,Radio单选项和Checkbox复选框是常见的表单元素,用于收集用户的选择信息。然而,由于浏览器的安全限制,直接通过CSS(层叠样式表)来改变Radio和Checkbox的默认样式通常是无效的。这是因为这些原生的...

    jquery 1.4 cheatsheet

    - **鼠标移动事件**:`mousemove([fn])` - 当鼠标在元素上移动时触发。 - **错误事件**:`error([fn])` - 当发生错误时触发。 - **鼠标移出事件**:`mouseout([fn])` - 当鼠标指针从元素上移出时触发。 - **获得...

    经典老控件含delphi源码

    TTorryButton 是增强型的 TSpeedButton 构件,外观如同一个普通的 TLabel 般,当鼠标移动至按钮上方,立即显示出按钮边框及加亮的LED 类型.带Exe演示程序 jcheck10.zip 12K 作者: Jan Hulala。 Windows98 外观的...

    Extjs,Jquery,Dhtmlxtree之上的树

    | checkbox | 布尔 | 是否显示复选框。 | False | | method | 字符串 | 定义动画效果显示方式。 | post | | caseadeCheck | 布尔 | 是否启用层叠约束。 | True | | onlyLeafCheck | 布尔 | 是否仅对叶节点显示复选框...

Global site tag (gtag.js) - Google Analytics