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 02 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
Aug 27 Javascript
深入探秘jquery瀑布流的实现
Jan 30 Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
微信小程序实现单列下拉菜单效果
Apr 25 Javascript
OpenLayers3实现地图显示功能
Sep 25 Javascript
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
超详细的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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
精通JavaScript的this关键字
2020/05/28 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
JS库之wow.js使用方法
2017/09/14 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
深入理解javascript中的this
2021/02/08 Javascript
Python实现抓取网页并且解析的实例
2014/09/20 Python
详解python调度框架APScheduler使用
2017/03/28 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python程序控制NAO机器人行走
2019/04/29 Python
python 字典操作提取key,value的方法
2019/06/26 Python
python实现图片九宫格分割
2021/03/07 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
项目施工员岗位职责
2014/03/09 职场文书
公司庆典欢迎词
2015/01/26 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers