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 相关文章推荐
javascript 面向对象编程 万物皆对象
Sep 17 Javascript
腾讯UED 漂亮的提示信息效果代码
Sep 12 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
Aug 10 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
Aug 26 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
vue一步步实现alert功能
Jul 05 Javascript
vue项目强制清除页面缓存的例子
Nov 06 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
vue实现锚点定位功能
Jun 29 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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
ECMAScript 基础知识
2007/06/29 Javascript
Javascript 对象的解释
2008/11/24 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
基本DOM节点操作
2017/01/17 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
解决Python传递中文参数的问题
2015/08/04 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python 堆和优先队列的使用详解
2019/03/05 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
介绍java中初始化块的使用
2012/09/11 面试题
优秀驾驶员先进事迹材料
2014/05/04 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
公司开业致辞
2015/07/29 职场文书
寒假生活随笔
2015/08/15 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL