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 相关文章推荐
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
Apr 20 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
Jun 23 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
详解小程序循环require之坑
Mar 08 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
javascript 内存模型实例详解
Apr 18 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 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命名空间(namespace)的使用基础及示例
2014/08/18 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
twig模板常用语句实例小结
2016/02/04 PHP
js验证表单大全
2006/11/25 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
js自动生成对象的属性示例代码
2013/10/28 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
对python中的高效迭代器函数详解
2018/10/18 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
Python-for循环的内部机制
2020/06/12 Python
python实现简单的tcp 文件下载
2020/09/16 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
安全生产先进个人材料
2014/02/06 职场文书
会计工作决心书
2014/03/11 职场文书
品质主管岗位职责
2014/03/16 职场文书
学生偷窃检讨书
2014/09/25 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
开展警示教育活动总结
2015/05/09 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫