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 相关文章推荐
jQuery代码优化 事件委托篇
Nov 01 Javascript
关于跨站脚本攻击问题
Dec 22 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
jquery实现在光标位置插入内容的方法
Feb 05 Javascript
Backbone.js的一些使用技巧
Jul 01 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
angularjs 缓存的使用详解
Mar 19 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
js 执行上下文和作用域的相关总结
Feb 08 Javascript
ECharts transform数据转换和dataZoom在项目中使用
Dec 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连mysql和oracle数据库性能比较
2006/10/09 PHP
改进的IP计数器
2006/10/09 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
python之yield表达式学习
2014/09/02 Python
python实现自动解数独小程序
2019/01/21 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python魔法方法详解
2019/02/13 Python
python中eval与int的区别浅析
2019/08/11 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
python实现四人制扑克牌游戏
2020/04/22 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
护理专业本科生自荐信
2013/10/01 职场文书
关于旷工的检讨书
2014/02/02 职场文书
中秋晚会活动方案
2014/08/31 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2014小学年度工作总结
2014/12/20 职场文书
八年级英语教学计划
2015/01/23 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python