动态参照布局发明专利: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 所 示,但是这样,又会产生了新的问题 :一是页面包含了多个滚动条时不好控制,二是滚动条 的出现减少了有限的窗口显示面积,三是影响页面的完整性、美观性。

如图1.1所示,界面常见的两栏布局结构,由于种种原因,使界面左栏、界面右栏高度不能相同;
如图1.2所示,由于左右两栏的高度不一致,在滚动阅读的同时,界面左栏会被移出窗口,从而减少了界面左栏的阅读机会;
如图1.3所示,对于此类问题,现行的技术方案就是让左右两栏各持一个滚动条;

什么是动态参照布局
本方法(发明专利号:201310215942.7)为界面提供了一种动态参照布局及展现方法,如果界面中的某些指定元素由于高度(或宽度)不能达成统一,从而造成界面的布局空白、缺失或其它不理想的效果,那么通过智能的判断指定元素及其窗口框架的大小关系,使指定元素在窗口框架中移动时,以其中某一指定元素所在区域或界面中的某一指定区域为参照对象,参照对象在“提供参照”状态时,如果指定元素的高度(或宽度)大于其窗口框架的高度(或宽度),那么指定元素在其窗口框架中根据参照对象反馈的移动数据也进行相应移动,指定元素可以通过“同步移动”或“同比移动”等各种合理方式进行移动,当指定元素在其窗口框架中的纵向(或横向)区域即将减少时予以锁定,直到符合解锁条件时,如参照对象转为“待提供参照”状态时,或者参照对象改变了对应的移动方向时,予以解锁,参照对象在“提供参照”状态时,如果指定元素的高度(或宽度)小于等于其窗口框架的高度(或宽度),直接将其锁定,直到参照对象转为“待提供参照”状态时予以解锁,通过这一过程,弥补界面中的先天空白或缺失,使界面保持完整、美观,或使操作界面明朗易用,增加操作效率,改善用户体验,其典型的动态参照布局过程请参照图 2、图 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不同,但是却始终保持了相同的移动比率;

同步移动
所谓“同步移动”,简单的说即指定元素与参照对象在其窗口框架中移动时保持相同的移动速度,其实现的技术方法为:参照对象在“提供参照”状态时,如果参照对象在其窗口框架中向某个方向移动的长度为N,那么指定元素在其窗口框架中也会向某个方向移动的长度为N,直到符合锁定条件时将其锁定,如下图所示

图 8 :如图所示,指定元素的移动方法采用“同步移动”,当纵向参照对象为“提供参照”状态时,纵向参照对象在其窗口框架中移动的距离假设为N,根据规则,界面左栏、界面右栏在未锁定的状态下,在其窗口框架中移动的距离也为N,其中N以长度单位为单位;

应用场景
该技术方法解决了多栏结构的界面中元素尺寸不一带来的布局难题,使界面显示内容更充实、更完整,更美观,更容易操作,还使用户的无效滚动操作减少。这点对于电子商务尤为重要,比如现在的电子商务网站页面,一般都是把商品分类目录放到左栏,把商品介绍放到界面右栏,由于商品介绍的内容和图片会占用很大的篇幅以至于远远超出左栏商品分类目录的高度,至使用户在向下滚动浏览的过程中,左栏的目录早已被滚出当前窗口所显示的区域,在用户浏览完商品介绍后,想再看到左栏的商品分类目录,只能做很多的无效滚动才能再次看到左栏的商品分类目录,还有一点值得注意的事,很多网站会把一些广告位也放到左栏,但是仍不及右栏的商品介绍的栏目长,所以在用户浏览滚动时也会把左栏中的广告移出当前窗口,每时每刻,都会有成千上万的用户访问网页,如果用户看不到广告,商家也就失去了机会,造成的损失可想而知。从另一个角度讲,在不同的商品界面,由于左栏跟右栏的内容是动态调取出来的,左栏跟右栏的栏目不能齐高,而使左栏或者右栏出现大量的空白,这也是美术设计非常头痛的问题,此技术方法的应用,对用户来讲改善了用户操作上的有效性跟体验度,又增强了界面的友好度,更重要的是增加了更多的阅读机会,对设计师来讲解决了界面设计的完整性跟美观性的需求。
责任声明
  • 个人用户免费使用,捐赠请扫页面左栏下方的二维码,您的支持是对知识产权最大的尊重;
  • 营利机构,政府部门或者商业用户,您需要联系作者(baiyukey@qq.com)申请一个授权(*推广期酌情免费授权)
  • 作者保留一切法律权力,并对于侵权或者非法使用行为,有权追究一切法律责任;
  • UI精灵目前的域名仅有uielf.cn,而且暂未和任何第三方合作,对于冒名合作开发的机构作者保留追究其法律责任的权利。
关于我
我是一名网站前端工程师,江湖道义称一声宇哥,追求前端技术和艺术20余载,自由职业。
UI精灵网站及技术成果全部由我研发,如果想拥有和我一样的网站,或者需要我的技术支持,欢迎与我洽谈合作。点此发送邮件
如果我的成果能够帮您节省宝贵的时间。不妨点击我的头像请我喝杯咖啡。并诚邀来github关注我的开源项目。