/*================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{
width:100%; height:200px; border:1px solid #ccc; margin:10px;}.hj_bootstrap_div .hj_re_div1{
width:300px; height:100%; float:left; border:1px solid #ccc; overflow: hidden;}.hj_re_div{
width: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