问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

flex vdividedbox 去掉中间(三个杠)的分隔符。

发布网友 发布时间:2022-05-16 02:42

我来回答

2个回答

懂视网 时间:2022-05-16 07:03

xmlplus 是一个JavaScript框架,用于快速开发前后端项目。这篇文章主要介绍了xmlplus布局类组件之分隔框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

分隔框(pidedBox)是一种布局类组件,可以分为两类,其中一类叫水平分隔框(HpidedBox),另一类叫垂直分隔框(VpidedBox)。水平分隔框会将其子级分为两列,而垂直分隔框则会将其子级分为两行。列与列之间以及行与行之间一般都会有一条可以拖动的用以改变子级组件大小的分隔条。下面仅以垂直分隔框为例来介绍此类组件是如何设计以及实现的。

成品组件用例

按照以往的设计经验,我们可以先写出想像中的成品组件用例,这将有助于我们后续的进一步的设计与实现。垂直分隔框既然是布局类的组件,那么它也一定是一个容器,该容器包含了上述我们提到的三种子级组件。为了使用方便,我们不应该把分隔框也写进去,分隔框应该由组件内部实现的。经过分析,我们得到下面的一个应用示例:

该示例由一垂直分隔框组件包裹着两个 p 元素。这里分别设置两个 p 元素的宽高为父级的 80%,同时设置它们的背景色为灰色,这只是为了方便测试。另外,我们还需要考虑一个子框的初始比例分配问题。我们可以设置默认比例为 50:50,比例最好可以在组件实例化时静态指定,同时提供比例设置的动态接口。于是我们就有了下面的改进用例。

这个用例在垂直分隔框初始化时设置子框的初始比例分配为 30:70,当用户点击第一子框时,比例分配重新恢复为 50:50。不过要注意,这些比例分配指的是对排除分隔条所占用空间后剩余空间的比例分配。

设计与实现

现在让我们把注意力转移到组件的内部。我们先大致地确定组件基本的组成。直观地看,垂直分隔框显示包含三个组件部分:上子框部分、分隔条以及下子框部分。于是我们暂时可以得到下面的视图项部分:

下一步,确保垂直分隔框组件实例的子级部分被正确地映射到上子框 top 以及下子框 bottom。方法是先让所有的子级元素对象全部被添加到上子框 top 中,然后在函数项中将下子级元素添加到下子框 bottom 中。

现在让我们来考虑下视图项的样式,对于顶层 p 元素,我们设置其定位方式为相对定位。对于子级的三个元素则设置为绝对定位。另外,把分隔条高度设置为 5px。

最后让我们看看如何响应分隔条的拖动事件,从而更改子框的分配比例。我们需要定义一个改变子框比例的函数,同时侦听分隔条的拖拽事件。下面是我们的一个实现。

上述代码的映射项中有一项关于 percent 格式的设置,该设置确保了 percent 为整型数。另外函数项中对子框的比例设定用到了 css3 的 calc 计算函数,改函数在浏览器窗体改变大小时仍然能够起作用。如果你希望兼容更多的浏览器,你需要做更多的工作。另外注意,为了让组件有好的性能表现,只有当用户开始拖拽时,才对事件 dragover 实施侦听。

进一步改进

让我们现在做个小测试,写一个包含两个文本域作为子级的垂直分隔框的应用实例。拖动分隔条,看会出现什么结果。

在这个示例中,有时候分隔条会失灵,子框比例不再随着分隔条位置而出现变化。问题出在文本域对拖拽事件进行了劫持,导致我们我组件内部收不到响应的事件。我们需要做些补丁才行。

为了解决问题,我们在组件中引用了额外的 p 元素对象 mask,此元素默认是不显示的。当拖动开始时,它才会覆盖住子框以及分隔条,而拖动一结束,它又隐藏掉。这样就避免了文本域对拖拽事件的劫持。

结合水平分隔框使用

我们有了上述垂直分隔框的设计经验,搞个水平分隔框也就不是什么难事了,这里就不列出来了。这里主要是给出一个综合使用水平分隔框和垂直分隔框的示例。当然的设计之初,我们并没有想到要这么使用。

这个示例主要用于展示当分隔框嵌套使用时的表现。该示例包含一个水平分隔框,该水平分隔框又包含两个垂直分隔框,这种布局在不少编辑器中是很常见的,我们这里已经简单高效地把它实现了。

本系列文章基于 xmlplus 框架。如果你对 xmlplus 没有多少了解,可以访问 www.xmlplus.cn。这里有详尽的入门文档可供参考。

【相关推荐】

1. 免费js在线视频教程

2. JavaScript中文参考手册

3. php.cn独孤九贱(3)-JavaScript视频教程

热心网友 时间:2022-05-16 04:11

....那还用vdividedbox干嘛....直接写成两个vbox不就完了..
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 上海懿久保险经纪有限公司江苏分公司怎么样? 上海中和保险经纪有限公司江苏分公司怎么样? 南京哪家保险代理公司比较靠谱? 恒泰保险经纪有限公司怎么样? 兴义机场离市区多远 兴义万峰林机场的介绍 兴义飞机场在深圳宝安机场的什么方问? 手机自带的无线网卡速度怎么知道 从沈阳到离兴义最近的机场是哪里啊? 兴义飞往遵义医科大附属医院哪个机场最近 有wifi功能的手机就内置无线上网卡吗?什么是手机当猫? 是不是所有智能手机都内置wifi无线网卡 〔20分〕手机内置网卡是什么意思,该怎么用? 油漆的几个工艺,混油与清油,擦色,套色和索色,之间有什么区别,混油和索色是一样吗? 柜子混油和喷漆有区别吗 人类的食物可分为酸性食物和碱性食物,生活中的酸性食物有哪些? 房屋买卖需要交什么税 口罩戴久变红,是身体哪里有疾病吗 项目管理方式 你认为如何加强对项目经理的管理 ios版本14b100变为14b150有何差别 苹果6Sp升级,苹果ios10.1.1系统稳定吗 惠普台式电脑主版上的b100s和Cm0S管,它们管子上都各自印有什么字,我也和认些? 车辆识别码:LVVDB11B100174178 苹果se版本101.114b150和14b100怎么样 ios10.1.1 14B150和14B100刷哪个 IOS 10.1.1等越狱用14b100还是14b150。懂得帮忙说下, vista系统是不是不支持七彩虹8500NT256显卡 命中注定我爱你中anna和anson用的是哪款手机 命中注定我爱你中的石安娜用的是什么手机 看命中注定石安娜回来拿哪个手机是什么牌子? 命中注定我爱你中Ana用的是什么手机 大话水浒fw精神提高 戴尔笔记本1万左右的哪个最好 极品飞车9和10显卡配置 <命中注定我爱你>里面女主角二号用的掀盖手机是什么? 天正建筑2013版的ID号是:DWD-WMAV2H588500; 网速变慢,网通1M光纤!! “开机PIN码关”是什么意思?? SlM卡PlN码关闭后关机再开机会不会还要slm码