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 Easyui Tree的oncheck事件实现代码
May 28 Javascript
有趣的javascript数组定义方法
Sep 10 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
javascript验证只能输入数字和一个小数点示例
Oct 21 Javascript
jquery队列函数用法实例
Dec 16 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
js操作数组函数实例小结
Dec 10 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
原生js实现手风琴功能(支持横纵向调用)
Jan 13 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
Angular封装搜索框组件操作示例
Apr 25 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新手上路(八)
2006/10/09 PHP
php简单静态页生成过程
2008/03/27 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
yii2安装详细流程
2018/05/23 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
python实现简单点对点(p2p)聊天
2017/09/13 Python
Python Series从0开始索引的方法
2018/11/06 Python
解决Python一行输出不显示的问题
2018/12/03 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
C语言笔试集
2012/07/24 面试题
JS原生实现轮播图的几种方法
2021/03/23 Javascript
物流专业自荐信
2014/05/23 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
商务英语求职信范文
2015/03/19 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
python获取淘宝服务器时间的代码示例
2021/04/22 Python
Mysql Online DDL的使用详解
2021/05/20 MySQL
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL