[发明专利]一种路由器CSS Sprites技术中使用自适应布局单位的兼容方法有效
| 申请号: | 202011010695.3 | 申请日: | 2020-09-23 |
| 公开(公告)号: | CN112149021B | 公开(公告)日: | 2021-07-30 |
| 发明(设计)人: | 李俊画;白云波;马剑 | 申请(专利权)人: | 四川天邑康和通信股份有限公司 |
| 主分类号: | G06F16/957 | 分类号: | G06F16/957;G06F16/953;H04L29/08 |
| 代理公司: | 成都时誉知识产权代理事务所(普通合伙) 51250 | 代理人: | 沈成金 |
| 地址: | 611300 四川省成*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 路由器 css sprites 技术 使用 自适应 布局 单位 兼容 方法 | ||
1.一种路由器CSS Sprites技术中使用自适应布局单位的兼容方法,其特征在于,包括以下步骤:
S1:页面首次初始化过程;
S2:在步骤S1的基础上,窗口尺寸变化时的页面调整过程;
其中步骤S1包括以下子步骤:
S11:匹配浏览器;浏览器的匹配在页面加载后进行,该过程识别筛选出存在CSSSprites中使用自适应布局单位的浏览器,对于这些类型的浏览器执行后续的流程;
S12:图片位置信息备份;位置信息备份过程将首次页面初始化后的原始页面窗口尺寸以及使用CSS sprites涉及的原始元素图片位置信息保存起来;
需要备份的信息包括:
(1)原始页面的窗口尺寸,即originWinWidth和originWinHeight;
(2)所有使用CSS background-position属性的元素建立原始图片位置信息数据库;原始图片位置信息数据库的表单字段定义如下:
class定义为元素CSS class的名称;
bg_width定义为原始background-position的width,单位为px;
bg_height定义为原始background-position的height,单位为px;
原始图片位置信息数据库的建立过程如下,在采用jquery代码时:
a、筛选并获取包含background-position属性元素的原始位置参数;
originPosition=$(this).css('background-position');
b、生成原始图片位置信息数据库;
bg_position_array[i].class=$(this).attr(class);
bg_position_array[i].bg_width=originPosition.split(“”)[0];
bg_position_array[i].bg_height=originPosition.split(“”)[1];
经过这个图片位置信息备份过程,原本使用vw、vh自适应布局单位的位置信息会自动转化为以像素px为单位的位置信息供后续的过程调用;
c、对于使用background-size显式设定了图片大小并且background-size的单位也是vw、vh自适应布局单位的情况,需要根据原窗口大小重新设定background-size:
origin_bg_size=originWinWidth*vw%+originWinHeight*vh%;
其中,vw%为图片宽度和窗口宽度的比率,vh%为图片高度和窗口高度的比率;
S13:CSS重加载;针对原始图片位置信息数据库,通过jquery的
$(this).css(“background-position”,“转化后的位置信息”)以及$(this).css(“background-size”,origin_bg_size)调用来重新加载转化后的图片位置信息从而得到希望的图片;
其中步骤S2包括以下子步骤:
S21:第二次匹配浏览器;
在页面控制代码中注册window resize的事件处理函数,当侦测出窗口改变的时候进行匹配浏览器的动作,匹配后执行后续的图片位置信息重计算及CSS重加载;
S22:图片位置信息重计算;
(1)获取窗口当前尺寸,即currentWinWidth和currentWinHeight,并与原始图片位置信息数据库中的窗口信息计算获取窗口变化的比例:
ratio_x=currentWinWidth/originWinWidth;
ratio_y=currentWinHeight/originWinHeight;
ratio_x为宽度方向的变化比率,ratio_y为高度方向的变化比率;
(2)对原始图片位置信息数据库中的每一个表项i,重新计算出新的background-position值,即:
new_position_array[i].class=bg_position_array[i].class;
new_position_array[i].bg_width=bg_position_array[i].bg_width*ratio_x;
new_position_array[i].bg_height=bg_position_array[i].bg_height*ratio_y;
经过以上的计算,生成新位置信息数据集new_position_array;
( 3) 对于使用background-size显式设定了的图片文件大小且使用了自适应布局单位的情况,需要重新计算新窗口下的图片大小,即:
new_bg_size=currentWinWidth*vw%+currentWinHeight*vh%;
S23:第三次CSS重加载;
对新位置信息数据中的每一个表项,生成新的css格式,即:
new_css[i]=new_position_array[i].bg_width+new_position_array[i].bg_height;
调用css指令,重新加载对应元素的样式,当使用jquery代码时:
$(new_position_array[i].class).css(“background-position”,new_css[i]);
对于使用background-size显式设定了图片大小的情况,需要额外的重新加载,即:
$(this).css(“background-size”,new_bg_size)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川天邑康和通信股份有限公司,未经四川天邑康和通信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011010695.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可变形轮胎
- 下一篇:一种基于业务中台的数字商城系统





