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 相关文章推荐
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
Jul 24 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
Feb 28 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
window.location 对象所包含的属性
Oct 10 Javascript
AngularJS 路由详解和简单实例
Jul 28 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
Vue 实现拨打电话操作
Nov 16 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
如何打开php的gd2库
2017/02/09 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
python编程的核心知识点总结
2021/02/08 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
观看《永远的雷锋》心得体会
2014/03/12 职场文书
法人代表委托书
2014/04/04 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
户籍证明书标准模板
2014/09/10 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python