• js实现由分隔栏决定两侧div的大小—js动态分割div


    /*================index.html===================*/

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
    <meta http-equiv="Content-Type" charset="text/html; utf-8"/>
    <meta charset="utf-8">
    <title>wind</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="renderer" content="webkit"/>
    <meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no"/>
    <meta name="author" content="wind"/>
    <meta name="robots" content="index,follow"/>
    <meta name="keywords" content=""/>
    <meta name="description" content=""/>
    <link rel="stylesheet" href="20161020.css">
    <script src="20161020.js"></script>
    </head>
    <body>
    <div class="hj_bootstrap_div">
    <div class="hj_re_div1">11111</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">2222222</div>
    </div>
    <div class="hj_bootstrap_div">
    <div class="hj_re_div1">11111</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">2222222</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">333333</div>
    </div>
    <div class="hj_bootstrap_div">
    <div class="hj_re_div1">11111</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">2222222</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">333333</div>
    <div class="hj_re_div"></div>
    <div class="hj_re_div1">44444</div>
    </div>
    </body>
    </html>

    /*================20161020.css===================*/

    .hj_bootstrap_div{
    100%;
    height:200px;
    border:1px solid #ccc;
    margin:10px;

    }

    .hj_bootstrap_div .hj_re_div1{
    300px;
    height:100%;
    float:left;
    border:1px solid #ccc;
    overflow: hidden;
    }

    .hj_re_div{
    3px;
    height:100%;
    float:left;
    border:2px solid #fff;
    background-color:#ccc;
    }

    /*================20161020.js===================*/

    document.onmousedown = hj_doDown;
    document.onmouseup = hj_doUp;
    document.onmousemove = hj_doMove;
    //定义一个指针对象
    var theobject = null;

    //定义一个对象
    function ElasticFrame(){
    this.el = null;
    this.dir = "";
    this.grabx = null;
    this.graby = null;
    this.width = null;
    this.height = null;
    this.left = null;
    this.top = null;
    }

    /**
    *鼠标按下事件
    */
    function hj_doDown(event){
    event = event || window.event;//兼容火狐
    var el1 = getReal(event.srcElement ? event.srcElement : event.target, "className", "hj_re_div");
    var nml=9;
    if (el1 == null) {
    theobject = null;
    return;
    }
    dir = getDirection(el1,event);
    if (dir == "") return;
    theobject = new ElasticFrame();
    theobject.el = el1;
    theobject.dir = dir;
    theobject.grabx = event.clientX;
    theobject.graby = event.clientY;
    theobject.width = el1.offsetWidth;
    theobject.left = el1.offsetLeft;
    theobject.top = el1.offsetTop;
    event.returnValue = false;
    event.cancelBubble = true;
    }

    /**
    *鼠标松开事件
    */
    function hj_doUp(){
    if (theobject != null) {
    theobject = null;
    }
    }

    /**
    *鼠标移动事件
    *
    */
    function hj_doMove(event){
    var xPos, yPos, str ,xMin;
    event = event || window.event;
    var el1 = getReal(event.srcElement ? event.srcElement : event.target, "className", "hj_re_div");
    var next_width = 0;
    var previous_width = 0;
    xMin = 8;
    //console.log(el1);
    if (el1.className == "hj_re_div") {
    var str = getDirection(el1,event);
    if (str == ""){
    str = "default";
    }else{
    str += "-resize";
    }
    el1.style.cursor = str;
    //兼容IE
    if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){
    next_width=el1.nextElementSibling.offsetWidth - 2;//右边的宽度
    previous_width =el1.previousElementSibling.offsetWidth - 2;
    }else{
    next_width=el1.nextSibling.nextElementSibling.offsetWidth - 2;//右边的宽度
    previous_width =el1.previousSibling.previousElementSibling.offsetWidth -2;
    }
    }

    if(theobject != null) {
    var movingDistance1 =event.clientX - theobject.grabx;
    if (dir.indexOf("col") != -1){
    var num1 = Number(event.clientX);
    var num2 = Number(theobject.grabx);
    if(num1 > num2){
    if(next_width < 20){

    }else{
    theobject.grabx = event.clientX;
    //兼容IE
    if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){
    el1.previousElementSibling.style.width = Math.max(xMin,previous_width + movingDistance1)+ "px";
    el1.nextElementSibling.style.width = Math.max(xMin, next_width- movingDistance1) + "px";
    }else{
    el1.previousSibling.previousElementSibling.style.width = Math.max(xMin,previous_width + movingDistance1)+ "px";
    el1.nextSibling.nextElementSibling.style.width = Math.max(xMin, next_width- movingDistance1) + "px";
    }
    }
    }else if(num1 <= num2){
    if(previous_width < 20){

    }else{
    theobject.grabx =event.clientX;
    //兼容IE
    if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){
    el1.previousElementSibling.style.width = Math.max(xMin,previous_width + movingDistance1) + "px";
    el1.nextElementSibling.style.width = Math.max(xMin,next_width - movingDistance1) + "px";
    }else{
    el1.previousSibling.previousElementSibling.style.width = Math.max(xMin,previous_width + movingDistance1) + "px";
    el1.nextSibling.nextElementSibling.style.width = Math.max(xMin,next_width - movingDistance1) + "px";
    }
    }
    }

    }
    event.returnValue = false;
    event.cancelBubble = true;
    }
    }

    /**
    *获取检测对象
    */
    function getReal(el, type, value) {
    var temp = el;
    while ((temp != null) && (temp.tagName != "BODY")) {
    if (eval("temp." + type) == value) {
    el = temp;
    return el;
    }
    temp = temp.parentElement;
    }
    return el;
    }

    /**
    *获取鼠标形状
    *
    */
    function getDirection(el,event){
    event = event || window.event;
    var xPos, yPos, offset, dir;
    dir = "";
    xPos = event.offsetX;
    offset = 9900000;
    if (xPos > el.offsetWidth-offset){
    dir += "col";
    }
    return dir;
    }

    演示地址:http://www.vfkjsd.cn/div/index1.html

  • 相关阅读:
    12、mybatis学习——mybatis懒加载的设置
    11、mybatis学习——自定义结果映射resultMap以及关联查询
    10、mybatis学习——sqlmapper配置返回list和map结果集
    9、mybatis学习——sqlmapper配置中#{}和${}的区别
    8、mybatis学习——sqlmapper配置文件参数处理(单个参数,多个参数,命名参数)
    7、mybatis学习——mybatis基础增删改&&mybatis获取自增主键
    6、mybatis学习——mapper映射配置
    5、mybatis学习——mybatis多数据库厂商支持
    [20180927]ora-01426.txt
    [20180928]ora-01426(补充).txt
  • 原文地址:https://www.cnblogs.com/herd/p/5983428.html
Copyright © 2020-2023  润新知