- 浏览: 73567 次
- 性别:
- 来自: 北京
文章分类
最新评论
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档-SH!</title>
<style>
/* 左右分割条样式 */
.lrSeparator {
background-color:#549FE3;
cursor:e-resize;
font-size : 1px;
}
/* 上下分割条样式 */
.udSeparator {
background-color:#549FE3;
cursor:s-resize;
font-size : 1px;
}
td {
border:1px solid #549FE3;
}
</style>
<script>
/**
* 类 名 称: Separator|SP
* 功能说明: 分割条类
* 版权信息: CopyRight 2005-2006 JoeCom
* 参数说明: o1,o2 : 两个对象
spTpe: 方向,是左右,还是上下
w:宽度;wx:left的差值;wy:top的差值
wh:左右拖动时,是宽度的差值,上下则是高度的差值
wl:上下拉动时时的一个差值
差值的存在是因为控件可能存在border,padding,top等一些情况,
还有就是控件的position不是为absolute
* 创 建 人: JoeCom | MSN:juwuyi@hotmail.com | blog:http://hi.baidu.com/joecom
* 创建日期: 2006-07-27
* 修改记录:
* 备 注 : IE下效果最好,FF下TD标签不支持onresize事件?
*/
//以下定义拖拉方向的常量
SP_LEFTRIGHT = 1; //左右拖拉
SP_UPDOWN = 2; //上下拖拉
function Separator(o1,o2,spType,w,wx,wy,wh,wl){
var me = this;
this.o1 = (typeof o1=="string")?document.getElementById(o1):o1;
this.o2 = (typeof o2=="string")?document.getElementById(o2):o2;
this.w = w||3; //Width or Height
this.wx = wx||0; //parentOffsetLeft
this.wy = wy||0; //parentOffsetTop
this.wh = wh||0; //parentOffsetHeight
this.wl = wl||0; //parentOffsetWidth
//this.wr = wr||0; //parentOffsetRight
this.autoresize = true;
this.spType = (spType==SP_UPDOWN)?SP_UPDOWN:SP_LEFTRIGHT;
this.allWidth = this.o1.clientWidth + this.o2.clientWidth + this.w ;
this.allHeight = this.o1.clientHeight + this.o2.clientHeight + this.w ;
this.isIE = false;
this.addEvent = function(el, evname, func) {
if (el.attachEvent) { // IE
el.attachEvent("on" + evname, func);
this.isIE = true;
} else if (el.addEventListener) { // Gecko / W3C
el.addEventListener(evname, func, true);
} else {
el["on" + evname] = func;
}
};
this.sp = document.createElement("div");
document.body.appendChild(this.sp);
this.init = function(){
if (this.spType==SP_LEFTRIGHT)
{
with (this.sp){
style.position = "absolute";
style.left = this.o1.offsetLeft + this.o1.clientWidth + this.wx + "px";
style.top = this.o1.offsetTop + this.wy + "px" ;
style.width = this.w;
style.height = this.o1.clientHeight + this.wh + "px";
className = "lrSeparator";
style.zIndex = "200";
}
}else
{
with (this.sp){
style.position = "absolute";
style.left = this.o1.offsetLeft + this.wx + "px";
style.top = this.o1.offsetTop + this.o1.clientHeight + this.wy + "px" ;
style.width = this.o1.clientWidth + this.wh + "px";
style.height = this.w;
className = "udSeparator";
style.zIndex = "200";
}
}
}
this.init();
this.dd = new ObjectDragDrop(this.sp);
this.dd.moveStyle = (this.spType==SP_LEFTRIGHT)?DD_HMOVE:DD_VMOVE;
this.resize = function(){
this.init();
}
this.addEvent(window,"resize",function(){me.resize();});
this.addEvent(this.o1,"resize",function(){me.resize();});
this.dd.isMoved = function(newPosX,newPosY){
if (me.spType==SP_LEFTRIGHT)
{
var mw1 = me.o1.getAttribute("minWidth");
var mw2 = me.o2.getAttribute("minWidth");
if (mw1==null){mw1 = 0;}
if (mw2==null){mw2 = 0;}
return {x:((newPosX - me.o1.offsetLeft)>=mw1&&(newPosX - me.o1.offsetLeft)<=(me.allWidth - mw2)),y:false};
}else
{
var mh1 = me.o1.getAttribute("minHeight");
var mh2 = me.o2.getAttribute("minHeight");
if (mh1==null){mh1 = 0;}
if (mh2==null){mh2 = 0;}
return {x:false,y:((newPosY - me.o1.offsetTop - me.wy)>=mh1&&(newPosY - me.o1.offsetTop - me.wy)<=( me.allHeight - mh2))};
}
}
this.dd.onDrop = function(){
if (me.spType==SP_LEFTRIGHT)
{
me.o1.style.width = me.sp.offsetLeft - me.o1.offsetLeft - me.wx - me.wl;
if (!me.autoresize){
me.o2.style.width = me.allWidth - me.o1.clientWidth - me.w;
if (me.o2.tagName!="TD")
{
me.o2.style.left = me.sp.offsetLeft;
}
}
}else
{
me.o1.style.height = me.sp.offsetTop - me.o1.offsetTop - me.wy;
if (!me.autoresize){
me.o2.style.height = me.allHeight - me.o1.clientHeight ;
if (me.o2.tagName!="TR")
{
me.o2.style.top = me.sp.offsetTop;
}
}
}
if (!me.isIE){
me.init();
}
}
}
/**
* 类 名 称: DragDrop|DD
* 功能说明: 可拖动类
* 版权信息: CopyRight 2005-2006 JoeCom
* 创 建 人: JoeCom | MSN:juwuyi@hotmail.com | blog:http://hi.baidu.com/joecom
* 创建日期: 2006-07-19
* 修改记录: 1. 2006-07-21 加上scrollTop 和 scrollLeft的相对移动
ł. 2006-07-25 加入moveStyle属性,增加水平移动和垂直移动的功能
Ń. 2006-07-25 加入isMoved函数,增加范围移动功能
*/
//以下定义移动方向的常量
DD_FREEMOVE = 0; //自由移动,没有限制
DD_HMOVE = 1; //水平移动,也就是左右移动
DD_VMOVE = 2; //垂直移动,也就是上下移动
function ObjectDragDrop(obj){
var me = this;
this.moveStyle = DD_FREEMOVE ;
this.foo = (typeof obj=="string")?document.getElementById(obj):obj;
this.onDrop = function(){};
this.onDrag = function(){};
this.isMoved = function(newPosX,newPosY){return {x:true,y:true}};//offsetX:x的移动距离;offsetY:y的移动距离
this.foo.onmousedown = function(e){
var foo = me.foo;
e = e||event;
if( e.layerX ){ foo.oOffset = {x:e.layerX, y:e.layerY }; }
else { foo.oOffset = {x:e.offsetX, y:e.offsetY }; }
document.onmousemove = me.drag;
document.onmouseup = me.drop;
document.onselectstart = function(){ return false; };
}
this.drag = function(e){
var foo = me.foo;
e=e||event;
var mv = me.isMoved(e.clientX - foo.oOffset.x + document.body.scrollLeft,
e.clientY - foo.oOffset.y + document.body.scrollTop);
if (mv.x&&me.moveStyle!=DD_VMOVE)
{
foo.style.left = e.clientX - foo.oOffset.x + document.body.scrollLeft + "px";
}
if (mv.y&&me.moveStyle!=DD_HMOVE)
{
foo.style.top = e.clientY - foo.oOffset.y + document.body.scrollTop + "px";
}
me.onDrag();
}
this.drop = function(e){
e=e||event;
document.onmousemove = document.onmouseup = document.onselectstart = null;
me.onDrop();
}
}
</script>
<script>
window.onload=function(){
//div左右拉动
var divsp = new Separator(divl,divr,SP_LEFTRIGHT,2);
divsp.autoresize = false;
}
</script>
</head>
<body>
<div id=divl minWidth="30" style="position:absolute;top:350px;width:100px;left:0px;height:100px;background-color:#CCCCCC">div1</div>
<div id=divr minWidth="30" style="position:absolute;top:350px;width:100px;left:102px;height:100px;background-color:#FF0000">div2</div>
</body>
</html>
发表评论
-
web打印控件|打印预览
2010-10-30 17:18 342web打印控件|打印预览 http://files.cnblo ... -
js日期控件
2010-11-27 22:37 285<script language="javas ... -
js 跨域访问 找了好长时间
2010-07-26 23:07 374一直没时间玩js,看到douban网的开放api后,查了些文档 ... -
跨域访问 js 使用json script 跨域访问
2010-07-27 11:19 284js跨域调用一直是个问题困扰着很多人 用ajax 是实现不了的 ... -
判断html修改日期
2010-08-18 23:23 294<script type="text/java ... -
让iframe 100%填充页面代码|100% height|100% width
2010-08-23 10:09 336让iframe 100%填充页面代码 要想让iframe 高1 ... -
jquery 获取radio 选中的值
2010-09-16 10:48 361var val = $("input[@n ... -
showModalDialog参数详解|使用方法
2010-09-17 11:40 258基本介绍: showModalDialog ... -
fck editor 编辑器例子下载|配置说明
2010-09-26 11:26 227将例子里的fck文件夹考到你的站点目录里 然后将web.con ... -
jquery控件|jquery ui 控件 例子 含 message|window |dialog
2010-09-26 11:40 268jquery的优秀的控件库 包括常用 messager dia ... -
省市区联动控件
2010-09-27 14:25 219<input type="text" ... -
js解析xml文件
2010-02-04 17:05 330function initTreeNode(dtree) ... -
jquery ui dialog|popup 弹出窗口层
2010-03-25 16:53 454jquery ui dialog|popup 弹出窗口层 ... -
“Internet Explorer无法打开站点,已终止操作”解决
2010-03-31 14:47 499“Internet Explorer无法打开站点,已终止操作” ... -
jquery ajax POST 例子详解
2010-04-08 10:28 342function test(){ $.ajax({ ... -
js 跨域访问 找了好长时间
2010-07-26 23:07 259一直没时间玩js,看到douban网的开放api后,查了些文档 ... -
跨域访问 js 使用json script 跨域访问
2010-07-27 11:19 276js跨域调用一直是个问题困扰着很多人 用ajax 是实现不了的 ... -
判断html修改日期
2010-08-18 23:23 228<script type="text/java ... -
让iframe 100%填充页面代码|100% height|100% width
2010-08-23 10:09 423让iframe 100%填充页面代码 要想让iframe 高1 ...
相关推荐
在本文中,我们将深入探讨如何基于Vue.js框架实现一个面板分割组件。Vue.js是一个轻量级、高性能的前端JavaScript框架,被广泛用于构建用户界面。面板分割组件在各种Web应用中非常常见,它允许用户动态调整两个或多...
// 在这里可以更新左右面板的宽度,确保总宽度不变 $("#left-pane").width(width); $("#right-pane").width($("#splitter").width() - width); } }); }); ``` 在这个例子中,`#splitter`是包含两个子面板的...
通常,开发者会利用JavaScript库,如jQuery UI的`Resizable`插件,或者使用现代前端框架如React、Vue或Angular中的组件库(如Bootstrap、Element UI)来实现动态的窗体分割效果。 在移动应用开发中,由于屏幕空间...
在设计按钮或分割面板时,Flexbox可能被用来确保元素在不同屏幕尺寸下保持良好的响应式布局。 6. **Grid布局**:CSS Grid是另一种布局系统,适合创建二维网格布局。在分割特效中,如果涉及多个元素的精确定位,CSS ...
此外,了解并应用性能分析工具,如Chrome DevTools的Performance面板,可以帮助我们找出并改进性能瓶颈。 通过以上步骤,我们可以逐步构建一个功能齐全的桌面级JavaScript便签系统。这不仅可以帮助初学者理解...
【标题】"js写的拼图游戏"涉及到的主要技术是JavaScript(简称js)和CSS,这是一种利用这两种前端技术实现的互动式拼图游戏。JavaScript是一种广泛应用于网页和网络应用的脚本语言,它主要负责处理页面的动态效果和...
表格的左右拖动通常涉及到水平分割面板(splitpane)的使用,这是一种可以动态调整两侧区域大小的布局组件。在上下拖动方面,原理类似,但适用于垂直方向的调整。这种功能的核心是监听鼠标的移动事件,当用户在特定...
【JS拼图游戏源码】是一个使用JavaScript编程语言开发的互动娱乐项目,旨在提供一个基于网页的拼图游戏体验。这款游戏的核心是通过编程实现图片的分割、打乱和重组,让玩家通过移动拼块来完成游戏。以下是关于这个...
**JavaScript(JS)拼图小游戏开发详解** JavaScript(简称JS)是一种广泛应用于客户端网页开发的脚本语言,它使得网页更具交互性和动态性。在这个"js拼图小游戏"项目中,我们将探讨如何利用JS实现一个有趣且具有...
JavaScript(JS)作为一种强大的客户端脚本语言,广泛应用于网页交互和动态效果的实现。在游戏开发领域,JS同样能够大显身手,尤其是在开发轻量级的游戏,如拼图游戏时。本篇将详细介绍一个基于JS的拼图游戏,它在...
接下来,JavaScript代码会监听用户的滚动事件或者触摸事件(对于移动设备),然后根据用户的输入改变这些面板的位置。这通常涉及到计算和更新面板的`transform: translateX()`值,以实现平滑的横向滑动。为了优化...
本文将深入解析一款基于jQuery和CSS3技术实现的三面板幻灯片特效,它将一张图片分割成三部分,通过独特的动画效果,创造出引人入胜的视觉体验。 首先,我们要了解jQuery库。jQuery是JavaScript的一个轻量级库,它...
实例197 左右移动单元格的信息 304 实例198 通过键盘使单元格焦点任意移动 306 7.3 对表格的行、列进行修改 311 实例199 动态制作表格 311 实例200 动态生成行或列 313 实例201 删除表中的行 314 7.4 单元格的相关...
当用户尝试移动拼图时,JavaScript代码会检测该动作是否合法,如是否可以交换两个相邻的拼图块,以及是否完成了拼图。此外,为了实现“排除不可完成的拼图可能”,可能还包含了一种策略,比如在游戏初始化时就确定每...
3. **JavaScript**:JavaScript是实现游戏逻辑的关键,包括图像的分割、拼图块的移动、验证游戏完成等动态功能。开发者可能使用`canvas`元素来处理图像切割,通过`addEventListener`监听用户的鼠标点击事件,然后...
它允许开发者在Web应用中实现灵活多样的窗口布局,包括分割面板、堆叠区域、可拖动和可调整大小的组件等。这款库在前端开发领域中广泛应用于数据可视化、编辑器工具、仪表板和其他需要高度定制用户界面的场景。 ...
例如,我们可以使用`appendChild`或`insertBefore`方法将碎片元素添加到拼图面板,`removeChild`移除不需要的元素,以及`style`属性改变元素的样式。 6. **游戏逻辑**:拼图游戏的核心逻辑包括碎片的正确排序、检查...
《238js_HTML手机电脑网站_网页源码移动端前端js效果_H5模板_自适应css源码ui组件.zip》这个压缩包文件包含了构建现代、跨平台的移动和桌面网站所需的各种资源,主要关注HTML、CSS和JavaScript这三种核心技术。...
在本例中,"Js拼图游戏实现"是一个基于JavaScript编写的H5游戏。拼图游戏,也被称为拼图谜题,通常涉及到将图片切割成多个部分,玩家需要通过移动这些部分来恢复原始图像。这种游戏类型对玩家的空间想象力和逻辑思维...
在移动应用开发中,SUI Mobile 是一个广泛使用的前端框架,它提供了丰富的组件和样式,使得构建响应式、高性能的移动端页面变得简单。然而,在实际项目中,我们可能会遇到一些关于路由加载 JavaScript 和 CSS 文件的...