jQuery实现分隔条左右拖动功能


Posted in Javascript onNovember 21, 2015

本文实例讲述了jQuery实现分隔条左右拖动功能的实现代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

jQuery实现分隔条左右拖动功能

jQuery实现分隔条左右拖动功能

具体内容如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script type="text/javascript" src="jquery.min.js"></script>
  <style type="text/css">
    html, body, div {
      margin: 0;
      padding: 0;
      border: 0;
      -moz-user-select: none;
      -webkit-user-select: none;
    }

    .gf_s {
      float: left;
      width: 4px;
      cursor: e-resize;
      background-color: #fff;
      border: #99BBE8 1px solid;
    }

    .gf_s_g {
      float: left;
      width: 4px;
      display: none;
      cursor: e-resize;
      position: absolute;
      background-color: #F0F0F0;
      border: #99BBE8 1px solid;
      filter: alpha(opacity=60);
      -moz-opacity: 0.6;
      -khtml-opacity: 0.6;
      opacity: 0.6;
      z-index: 1000;
    }
  </style>
 </head>
 <body>
   <div id="divP" style="width:100%; height:100%;">
     <div id="divLeft" style="background-color: green; float: left; "></div>
     <div id="divS" class="gf_s" style="float: left;"></div>
     <div id="divSG" class="gf_s_g" style="float: left;"></div>
     <div id="divRight" style="background-color: blue; float: left;"></div>
   </div>

   <script type="text/javascript">
     var $sliderMoving = false;     

     //兼容各种浏览器的,获取鼠标真实位置
     function mousePosition(ev) {
       if (!ev) ev = window.event;
       if (ev.pageX || ev.pageY) {
         return { x: ev.pageX, y: ev.pageY };
       }
       return {
         x: ev.clientX + document.documentElement.scrollLeft - document.body.clientLeft,
         y: ev.clientY + document.documentElement.scrollTop - document.body.clientTop
       };
     };
     //获取一个DIV的绝对坐标的功能函数,即使是非绝对定位,一样能获取到
     function getElCoordinate(dom) {
       var t = dom.offsetTop;
       var l = dom.offsetLeft;
       dom = dom.offsetParent;
       while (dom) {
         t += dom.offsetTop;
         l += dom.offsetLeft;
         dom = dom.offsetParent;
       };
       return { top: t, left: l };
     };

     //分隔条幽灵左右拖动(mousemove)
     function sliderGhostMoving(e) {
       $("#divSG").css({ left: mousePosition(e).x - 2, display: "block" });
     };
     //完成分隔条左右拖动(mouseup)
     function sliderHorizontalMove(e) {
       var lWidth = getElCoordinate($("#divSG")[0]).left - 2;
       var rWidth = $(window).width() - lWidth - 6;
       $("#divLeft").css("width", lWidth + "px");
       $("#divRight").css("width", rWidth + "px");
       $("#divSG").css("display", "none");
     };

     function reinitSize() {
       var width = $(window).width() - 6;
       var height = $(window).height();
       $("#divLeft").css({ height: height + "px", width: width * 0.75 + "px" });
       $("#divS").css({ height: height - 2 + "px", width: "4px" });
       $("#divSG").css({ height: height - 2 + "px", width: "4px" });
       $("#divRight").css({ height: height + "px", width: width * 0.25 + "px" });
     }

     $(document).ready(function () {
       reinitSize();

       $("#divS").on("mousedown", function (e) {
         $sliderMoving = true;
         $("divP").css("cursor", "e-resize");
       });

       $("#divP").on("mousemove", function (e) {
         if ($sliderMoving) {
           sliderGhostMoving(e);
         }
       });

       $("#divP").on("mouseup", function (e) {
         if ($sliderMoving) {
           $sliderMoving = false;
           sliderHorizontalMove(e);
           $("#divP").css("cursor", "default");
         }
       });
     });

     $(window).resize(function () {
       reinitSize();
     });

   </script>
 </body>
</html>

希望本文所述对大家学习jquery分隔条有所帮助。

Javascript 相关文章推荐
web页面数据展示新想法(json)
Jun 08 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
Node.js的Koa框架上手及MySQL操作指南
Jun 13 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
angular4强制刷新视图的方法
Oct 09 Javascript
js中的深浅拷贝问题简析
May 10 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
详细分析JavaScript中的深浅拷贝
Sep 17 Javascript
超详细的javascript数组方法汇总
Nov 21 #Javascript
javascript实现动态统计图开发实例
Nov 21 #Javascript
js实现索引图片切换效果
Nov 21 #Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 #Javascript
javascript实现Email邮件显示与删除功能
Nov 21 #Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 #Javascript
Jquery ajax基础教程
Nov 20 #Javascript
You might like
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
Javascript缓存API
2016/06/14 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
连接Python程序与MySQL的教程
2015/04/29 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python实现解数独程序代码
2017/04/12 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
python使用建议与技巧分享(二)
2020/08/17 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
留学顾问岗位职责
2014/04/14 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
500字小学生检讨书
2015/02/19 职场文书
甲午风云观后感
2015/06/02 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书