现在的位置: 网页制作教程JS网页特效 >正文
jquery相关教程

Jquery实现左右拖动动态改变窗口大小的方法

发表于2017/4/29 JS网页特效 0条评论 ⁄ 热度 3,115℃

项目使用的是左右布局,要求拖动分割线就可以改变左右窗口的大小尺寸。实现这个需求就需要借出jquery技术了。

涉及JavaScript实时响应鼠标事件动态改变页面元素属性的技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

特地编写了一个实例,左右可拖动的内容显示区效果,左右拖动红条改变显示区域宽度大小,往左拖则全部显示右侧内容,往右拖则全部显示左则内容,类似QQ的聊天窗口一样,可以向上或向下拖动大小,以适合使用者的要求。本代码完全JavaScript与CSS代码结合实现,在各主流浏览器内运行的兼容性也不错,左右拖动改变大小的JS代码推荐给大家。

运行效果截图如下:

左右拖动改变窗体大小的效果截图

具体代码如下:

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>左右可拖动的内容显示区</title>
<style>
 ul,li{margin:0;padding:0;}
 body{font:14px/1.5 Arial;color:#666;}
 #box{position:relative;width:600px;height:400px;border:2px solid #000;margin:10px auto;overflow:hidden;}
 #box ul{list-style-position:inside;margin:10px;}
 #top,#bottom{color:#FFF;width:300px;height:400px;overflow:hidden;}
 #top{background:green; float:left}
 #bottom{background:skyblue;float:right}
 #line{position:absolute;top:0;left:50%;height:100%;width:4px;overflow:hidden;background:red;cursor:w-resize;}
</style>
<script>
function $(id) {
 return document.getElementById(id) 
}
window.onload = function() {
 var oBox = $("box"), oTop = $("top"), oBottom = $("bottom"), oLine = $("line");
 oLine.onmousedown = function(e) {
  var disX = (e || event).clientX;
  oLine.left = oLine.offsetLeft;
  document.onmousemove = function(e) { 
   var iT = oLine.left + ((e || event).clientX - disX);
   var e=e||window.event,tarnameb=e.target||e.srcElement;
   var maxT = oBox.clientWight - oLine.offsetWidth;
   oLine.style.margin = 0;
   iT < 0 && (iT = 0);
   iT > maxT && (iT = maxT);
   oLine.style.left = oTop.style.width = iT + "px";
   oBottom.style.width = oBox.clientWidth - iT + "px";
  $("msg").innerText='top.width:'+oLine.style.width+'---bottom.width:'+oBottom.style.width+'---oLine.offsetLeft:'+oLine.offsetLeft+'---disX:'+disX+'---tarnameb:'+tarnameb.tagName;
return false
  }; 
document.onmouseup = function() {
document.onmousemove = null;
document.onmouseup = null; 
oLine.releaseCapture && oLine.releaseCapture()
};
oLine.setCapture && oLine.setCapture();
return false
};
};
</script>
</head>
<body>
<center>左右拖动红条改变显示区域宽度<span id="msg"></span></center>
<div id="box">
<div id="top">
<ul>
<li><a href="#" target="_blank">企业咨询管理公司源码</a></li>
<li><a href="#" target="_blank">QQ选号网站源码 QQ号码站源代码</a></li>
<li><a href="#" target="_blank">婚礼设计公司源码</a></li>
<li><a href="#" target="_blank">叉车机械公司源码 叉车工程企业网站代码</a></li>
<li><a href="#" target="_blank">农产品网站源码 土特产品网站模板</a></li>
<li><a href="#" target="_blank">政府网站管理系统源码</a></li>
<li><a href="#" target="_blank">保健品公司源码 保健食品网站代码</a></li>
<li><a href="#" target="_blank">物流公司网站源码 物流企业网站模板</a></li>
<li><a href="#" target="_blank">安防产品网站源码 安防公司网站代码</a></li>
<li><a href="#" target="_blank">网络科技公司网站源码</a></li>
</ul>
</div>
<div id="bottom">
<ul>
<li><a href="#" target="_blank">PHP如何获取用户的IP地址</a></li>
<li><a href="#" target="_blank">PHP查询MySql数据库实例 将结果用表格输出</a></li>
<li><a href="#" target="_blank">php将图片以二进制形式保存到mysql数据库的方法</a></li>
<li><a href="#" target="_blank">简单的php图片上传实例代码</a></li>
<li><a href="#" target="_blank">php如何调用百度UEditor编辑框</a></li>
<li><a href="#" target="_blank">PHP生成随机验证码实例代码</a></li>
<li><a href="#" target="_blank">不允许保存更改,您所做的更改要求删除并重新创建以下表</a></li>
<li><a href="#" target="_blank">C#中泛型的使用方法</a></li>
<li><a href="#" target="_blank">如何限制MSSQL日志文件大小</a></li>
<li><a href="#" target="_blank">不能局域网共享的原因分析</a></li>
</ul>
</div>
<div id="line"></div>
</div>
</body>
</html>

本项目希望可以帮到你。

  • 暂无评论