动态参照布局发明专利:ZL201310215942.7
试一试
您可以在新打开的页面左上方切换功能,同时观察在反复滚动页面时左右栏的参照变化
javaScript技术实现
<script type="text/javascript" src="http://www.uielf.cn/media/js.min/libs/jquery.elfLayout.min.js"></script><!--引入js-->
var option={
"scale":"yes",// String | 移动方式,"yes"(同比移动)或"no"(同步移动),默认"no" |可选项
"referenceY":".mainRight",//*必选项,默认"null",
"referenceX":"null",//*可选项,默认值"null",
"callback":false,//*命令执行完毕后的回调函数
};
$(".mainLeft").elfLayout(option);//左栏与右栏激活动态参照布局
代码下载
-
点击下载
*代码仅供学习参考,并不定期更新版本,对于不同版本造成的任何问题,作者不承担任何法律责任,特此声明!
法律权限
- 个人用户免费使用,捐赠请扫页面左栏下方的二维码,您的支持是对知识产权最大的尊重;
- 营利机构,政府部门或者商业用户,您需要联系作者(baiyukey@qq.com)申请一个授权(*推广期酌情免费授权);
- 作者对专利保留一切法律权力,并对于侵权或者非法使用行为,有权追究一切法律责任。
专利转让
- 目前该专利可以在鱼爪网转让,前往专利转让页面
技术背景
如图1.1所示,界面常见的两栏布局结构,由于种种原因,使界面左栏、界面右栏高度不能相同;
如图1.2所示,由于左右两栏的高度不一致,在滚动阅读的同时,界面左栏会被移出窗口,从而减少了界面左栏的阅读机会;
如图1.3所示,对于此类问题,现行的技术方案就是让左右两栏各持一个滚动条;
什么是动态参照布局
图 2.1 :如图所示,窗口框架所在的纵向区域没有全部在纵向参照对象之内,根据规则,参照对象在“待提供参照”状态,此时页面左栏、界面右栏不受影响;
图 2.2 :如图所示,界面在窗口框架中上移,纵向参照对象进入“提供参照”状态后,窗口框架下边缘与界面左栏下边缘对齐时,如果界面再继续上移的话,界面左栏的纵向区域在其窗口框架中即将减少,根据规则,此时将界面左栏纵向锁定,即界面左栏底部与窗口框架底部保持对齐状态;
图 2.3 :如图所示,界面左栏被纵向锁定到窗口框架后,虽然界面仍继续上移,但界面左栏纵向区域并没有被移出窗口框架造成窗口框架的布局空白问题;
图 2.4 :如图所示,界面左栏被纵向锁定后,界面继续向上移动,当窗口框架底边与参照对象底边重叠时,此时界面如果再继续向上移动,窗口框架所在的纵向区域将不会全部处在纵向参照对象中,根据规则,纵向参照对象转换为“待提供参照”状态,此时界面左栏与窗口框架解除纵向锁定关系;
图 2.5 :如图所示,虽然界面左栏与窗口框架已经纵向解锁,但是界面左栏已经与其一开始所处在界面中的位置不同了,界面左栏纵向位置被留在了其在界面中纵向解锁时所处的位置,在窗口框架显示到了界面底部时,整个界面仍然保持着完整的布局,实际上,界面原来的空白区域被界面左栏合理的填充了;
图 3.1 :如图所示,图 3.1 与图 2.5 其实是一样的,此时的界面其实是图2.5的一个延续,界面将会反向移动,界面左栏、界面右栏的参照对象不变,此时纵向参照对象为“待提供参照”状态;
图 3.2:如图所示,界面在窗口框架中下移,纵向参照对象进入“提供参照”状态后,窗口框架上边缘与界面左栏上边缘对齐时,如果界面再继续下移的话,界面左栏的纵向区域在其窗口框架中即将减少,根据规则,此时将界面左栏纵向锁定,即界面左栏顶部与窗口框架顶部保持对齐状态;
图 3.3 :如图所示,界面左栏被纵向锁定到窗口框架后,虽然界面仍继续下移,但界面左栏纵向区域并没有被移出窗口框架造成窗口框架的布局空白问题;
图 3.4 :如图所示,界面左栏被纵向锁定后,界面继续向下移动,当窗口框架顶边与参照对象顶边重叠时,此时界面如果再继续向下移动,窗口框架所在的纵向区域将不会全部处在纵向参照对象中,根据规则,纵向参照对象转换为“待提供参照”状态,此时界面左栏与窗口框架解除纵向锁定关系;
图 3.5:如图所示,在窗口框架显示到界面顶部时,整个界面又回到了如图 2.1 所示的初始布局样式;
同比移动
图 9:如图所示,指定元素的移动方法采用“同比移动”,根据规则,界面左栏与界面右栏的纵向参照对象相同,因此可以视为共用一个纵向参照对象,此组图片所声明的H、Hw、Hl、Hr、H1、Hl1、Hr1、N、Nl、Nr均以长度单位为单位并且单位相同,声明的P以“%”为单位;
图 9.1 :如图所示,纵向参照对象的高度为H,窗口框架的高度为Hw,界面左栏的高度为Hl,界面右栏的高度为Hr,根据规则,纵向参照对象在其窗口框架外的高度H1=H-Hw,界面左栏在其窗口框架外的高度Hl1=Hl-Hw,界面右栏在其窗口框架外的高度Hr1=Hr-Hw;
图 9.2 :如图所示,纵向参照对象在进入“提供参照”状态后,在其窗口框架中移动的距离假设为N,根据规则,首先计算参照对象的移动比P=N/H1*100%,那么界面左栏在其窗口框架中移动的距离Nl=Hl1*P,界面右栏在其窗口框架中移动的距离Nr=Hr1*P;
图 9.3:如图所示,纵向参照对象在其窗口框架中继续移动,当转为“待提供参照”状态时,界面左栏、界面右栏虽然在其窗口框架中移动的长度Nl、Nr不同,但是却始终保持了相同的移动比率;
同步移动
图 8 :如图所示,指定元素的移动方法采用“同步移动”,当纵向参照对象为“提供参照”状态时,纵向参照对象在其窗口框架中移动的距离假设为N,根据规则,界面左栏、界面右栏在未锁定的状态下,在其窗口框架中移动的距离也为N,其中N以长度单位为单位;
应用场景
责任声明
- 个人用户免费使用,捐赠请扫页面左栏下方的二维码,您的支持是对知识产权最大的尊重;
- 营利机构,政府部门或者商业用户,您需要联系作者(baiyukey@qq.com)申请一个授权(*推广期酌情免费授权);
- 作者保留一切法律权力,并对于侵权或者非法使用行为,有权追究一切法律责任;
- UI精灵目前的域名仅有uielf.cn,而且暂未和任何第三方合作,对于冒名合作开发的机构作者保留追究其法律责任的权利。