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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
JavaScript 事件查询综合
Jul 13 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
Jan 15 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
Vue中定义全局变量与常量的各种方式详解
Aug 23 Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 Javascript
vue-父子组件和ref实例详解
Nov 10 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 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
杏林同学录(三)
2006/10/09 PHP
PHP 图片水印类代码
2012/08/27 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
JS中获取数据库中的值的方法
2013/07/14 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
vue实例的选项总结
2020/06/09 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
Python单例模式实例分析
2015/01/14 Python
Python画图学习入门教程
2016/07/01 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
九年级数学教学反思
2014/02/02 职场文书
校园元旦活动总结
2014/07/09 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
运动会通讯稿50字
2015/07/20 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
golang的文件创建及读写操作
2022/04/14 Golang
Golang并发工具Singleflight
2022/05/06 Golang