CN105812944A - 界面焦点移动控制方法及装置 - Google Patents
界面焦点移动控制方法及装置 Download PDFInfo
- Publication number
- CN105812944A CN105812944A CN201410836946.1A CN201410836946A CN105812944A CN 105812944 A CN105812944 A CN 105812944A CN 201410836946 A CN201410836946 A CN 201410836946A CN 105812944 A CN105812944 A CN 105812944A
- Authority
- CN
- China
- Prior art keywords
- focus
- page
- algorithm
- value
- subscript
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种界面焦点移动控制方法及装置,其方法包括:当用户访问页面时,屏蔽浏览器的焦点移动算法;对自定义焦点移动算法的数据结构进行初始化;当在页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;当按键键值为方向键时,依据初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。本发明只需要引入少量的数据结构,就能实现不依赖于具体的页面布局的通用焦点移动算法,该算法逻辑清晰,通用性强,适用于所有页面,且不需要针对各个页面分别制定不同的规则,从而克服了通常的业务实现的焦点算法需要引入大量的附加规则的弊端,大大提高了算法的通用性。
Description
技术领域
本发明涉及电视技术领域,尤其涉及一种界面焦点移动控制方法及装置。
背景技术
目前,互联网电视日益智能化和人性化,人们对电视的操作体验要求也越来越高。对于普通用户而言,用户的绝大部分操作都是用遥控器在电视界面上移动焦点,搜索自己感兴趣的内容。用户对于焦点移动的效果也有很高的要求,如要求焦点实现平滑移动、焦点移动时有特效,甚至要求焦点有呼吸效果等。
目前,实现焦点移动有两种方法:一种是利用浏览器内核自带的焦点处理算法,一种是通过业务实现焦点算法。默认情况下,用遥控器按方向键时,浏览器会去处理焦点移动操作,查找下一个焦点,并将焦点框移动到下一个焦点上。浏览器实现的焦点算法效果和焦点框风格都比较单一,无法实现复杂的特效效果和视觉效果比较炫的焦点移动。并且,浏览器的焦点框风格是统一的,对于不同页面,无法实现不同的焦点移动效果。此外,现有的浏览器的焦点算法有时会出现焦点移动异常的情况,如焦点无法移动到指定的焦点上等。
对于业务实现焦点算法,其优点是可以定制焦点移动的效果,能够满足用户对于焦点移动的复杂和多样化的需求,实现很多在浏览器的焦点算法中无法实现的效果,极大地提升了用户体验。但是,由于页面本身的布局千差万别,而且页面元素通常是不规则的,因此,传统的通过业务实现焦点算法的处理方法通常是针对页面的布局特点,在焦点算法中加入大量的规则,来实现对于页面元素不规则情况的焦点移动处理。这种方法一方面需要针对页面布局引入大量的规则,比较复杂,而且容易出现规则遗漏导致焦点移动异常的情况;另一方面,这种方法实现的焦点算法通用性很差,需要针对每个页面的布局特点分别引入不同的规则,效率比较低下。
发明内容
本发明的主要目的在于提供一种界面焦点移动控制方法及装置,旨在克服现有的焦点算法需要引入大量的附加规则的弊端,提高算法的通用性,并能够实现焦点移动特效的自定义化。
为了达到上述目的,本发明提出一种界面焦点移动控制方法,包括:
当用户访问页面时,屏蔽浏览器的焦点移动算法;
对自定义焦点移动算法的数据结构进行初始化,包括:定制页面焦点框的风格、划分页面区域、对页面元素的参数进行初始化,以及分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组;
当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
优选地,所述屏蔽浏览器的焦点移动算法的步骤包括:
调用Navigation对象的disableDefaultNavigation()方法屏蔽所述浏览器的焦点移动算法。
优选地,所述定制页面焦点框的风格包括:定制焦点框的位置、大小、圆角效果、边框效果、z序、焦点移动时的滑动效果;
所述划分页面区域包括:根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表页面的行数和列数;
所述页面元素的参数包括:当前焦点所在元素的行下标值、列下标值、页面的行数和列数。
优选地,所述分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组的步骤包括:
保存页面元素的位置和区域信息到二维数组pos[M][N]和areas[M][N]中;
保存元素所跨的列数和行数到一维数组crossCols[M*N]和crossRows[M*N];
保存元素起始的行和列下标到一维数组startColIndex[M*N]和startRowIndex[M*N]。
优选地,所述方向键为向下键,所述依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制的步骤包括:
采用向下键对应的自定义焦点移动算法对当前焦点进行移动控制,具体包括:
判断当前焦点元素是否位于页面的最后一行;若是,则算法结束;否则
计算当前元素的下标值;
获取当前焦点元素所跨的行数;
获取当前焦点元素的起始行下标;
计算下一个焦点元素的行下标;
如果下一个焦点元素的行下标超出了行数,则算法结束;否则
计算下一个焦点元素在pos和areas数组中的下标值;
获取下一个焦点元素在pos和areas数组中的位置和区域值;
判断所述下一个焦点元素在pos和areas数组中的位置和区域值的值是否为(-1,-1),若是,则设置行下标为rowCount-1,算法结束;否则
更新焦点的坐标和区域值,将焦点移动到下一个位置。
本发明实施例还提出一种界面焦点移动控制装置,包括:
屏蔽模块,用于当用户访问页面时,屏蔽浏览器的焦点移动算法;
初始化模块,用于对自定义焦点移动算法的数据结构进行初始化,包括:定制页面焦点框的风格、划分页面区域、对页面元素的参数进行初始化,以及分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组;
判断模块,用于当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
焦点移动控制模块,用于当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
优选地,所述屏蔽模块,还用于调用Navigation对象的disableDefaultNavigation()方法屏蔽所述浏览器的焦点移动算法。
优选地,所述定制页面焦点框的风格包括:定制焦点框的位置、大小、圆角效果、边框效果、z序、焦点移动时的滑动效果;所述划分页面区域包括:根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表页面的行数和列数;所述页面元素的参数包括:当前焦点所在元素的行下标值、列下标值、页面的行数和列数。
优选地,所述初始化模块,还用于保存页面元素的位置和区域信息到二维数组pos[M][N]和areas[M][N]中;
保存元素所跨的列数和行数到一维数组crossCols[M*N]和crossRows[M*N];
保存元素起始的行和列下标到一维数组startColIndex[M*N]和startRowIndex[M*N]。
优选地,所述方向键为向下键;
所述焦点移动控制模块,还用于采用向下键对应的自定义焦点移动算法对当前焦点进行移动控制,具体用于:
判断当前焦点元素是否位于页面的最后一行;若是,则控制算法结束;否则计算当前元素的下标值;获取当前焦点元素所跨的行数;获取当前焦点元素的起始行下标;计算下一个焦点元素的行下标;如果下一个焦点元素的行下标超出了行数,则控制算法结束;否则计算下一个焦点元素在pos和areas数组中的下标值;获取下一个焦点元素在pos和areas数组中的位置和区域值;判断所述下一个焦点元素在pos和areas数组中的位置和区域值的值是否为(-1,-1),若是,则设置行下标为rowCount-1,控制算法结束;否则更新焦点的坐标和区域值,将焦点移动到下一个位置。
本发明实施例提出的一种界面焦点移动控制方法及装置,当用户访问页面时,屏蔽浏览器的焦点移动算法;对自定义焦点移动算法的数据结构进行初始化;当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;当所述按键键值为方向键时,依据所述方向键,采用自定义焦点移动算法对当前焦点进行移动控制,该算法的优点是逻辑清晰,通用性强,只需要引入少量的数据结构,就能实现不依赖于具体的页面布局的通用焦点移动算法,该算法适用于所有页面,且不需要针对各个页面分别制定不同的规则,从而克服了通常的业务实现的焦点算法需要引入大量的附加规则的弊端,大大提高了算法的通用性。同时,能够定制焦点移动的特效,提高用户体验。
附图说明
图1是本发明界面焦点移动控制方法较佳实施例的流程示意图;
图2是本发明实施例自定义焦点算法数据结构初始化流程示意图;
图3是本发明实施例涉及的一种页面布局示例;
图4是本发明实施例向下键焦点移动处理算法流程示意图;
图5是本发明界面焦点移动控制装置较佳实施例的功能模块示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明较佳实施例提出一种界面焦点移动控制方法,包括:
步骤S101,当用户访问页面时,屏蔽浏览器的焦点移动算法;
本实施例方案涉及电视界面焦点的移动控制,其中,焦点的移动触发可以由用户通过遥控器实现,用户通过遥控器在电视界面上移动焦点,搜索自己感兴趣的内容。
本发明实施例方案可以克服传统的自定义焦点算法需要针对不同的页面布局分别引入大量的附加规则,导致焦点算法逻辑比较混乱,算法通用性不强的缺陷,采用的自定义焦点移动算法通用性强,算法逻辑清晰,适用于所有页面,不需要针对不同页面的布局特点添加大量的规则。
具体地,首先,当用户访问电视的当前页面时,屏蔽浏览器的焦点移动算法。因为在页面移动焦点时,默认情况下浏览器会对焦点移动进行处理。对于本系统,由于不希望浏览器处理焦点移动,因此,在进入页面时,通过业务设置的方法屏蔽掉浏览器的焦点移动算法。具体而言,是调用Navigation对象的disableDefaultNavigation()方法屏蔽掉浏览器的焦点移动算法。这样,保证了业务可以按照自己的方式来处理焦点移动。
步骤S102,对自定义焦点移动算法的数据结构进行初始化;
之后,对自定义焦点移动算法的数据结构进行初始化。本系统为自定义焦点算法定义了一套数据结构,在进入页面时,要先对这些数据结构进行初始化和赋值操作,以便后面的自定义焦点算法模块使用。
具体地,如图2所示,图2是本实施例自定义焦点算法数据结构初始化流程示意图。其初始化流程如下:
1、定制焦点框的风格。
本实施例可以自定义焦点框的风格,以满足不同的焦点移动效果。由于浏览器的焦点框存在风格比较单一且对于所有页面风格都相同的局限性,本实施例自定义焦点算法可以针对不同页面灵活定制焦点框的风格,以满足不同的页面需求,而且焦点移动的用户体验也更好。自定义焦点框的风格主要包括焦点框的位置、大小、圆角效果(圆角率)、边框效果(边框粗细、边框颜色等)、z序(窗口在桌面上的排列顺序,因为多窗口系统首先要确保一个窗口中的绘制输出不会影响到另外一个窗口。为此,GUI系统一般要利用Z序来管理窗口之间的互相剪切关系,Z序实际定义了窗口之间的层叠顺序。是相对屏幕坐标而言的。一般而言,屏幕上的所有窗口均有一个坐标系,即原点在左上角,X轴水平向右,Y轴垂直向下的坐标系。Z序就是相对于一个假想的Z轴而言,这个Z轴从屏幕外指向屏幕内。窗口在这个Z轴上的值,就确定了其Z序。Z序值大的窗口,覆盖了Z序值小的窗口)、焦点移动时的滑动效果等。下面是自定义焦点框标签及其风格示例:
2、划分页面区域。
根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表行数和列数。其中,由于页面中元素位置和大小通常都是不规则的,因此,M和N的取值都是行和列中最大的元素个数值。例如,对于图3所示的页面布局,M=3,N=5。
3、参数初始化。
参数初始化包括当前焦点元素的行下标值rowIndex、列下标值colIndex、页面的行数rowCount和列数colCount等。初始值如下:
varrowIndex=0;//当前焦点的行下标,从0开始。
varcolIndex=0;//当前焦点的列下标,从0开始。
varrowCount=M;//页面元素行数。
varcolCount=N;//页面元素列数。
4、初始化二维数组pos[M*N][2]和areas[M*N][2],这两个数组分别用来存放元素的位置和大小信息。初始化包括三步:
(i)将数组pos和areas中所有元素的值均置为-1,表示元素初始位置和大小均为无效值:
(ii)根据元素的实际位置和区域值填充数组pos和areas。例如:对于第一个元素,由于其占2行2列,因此,将其在页面中的x和y坐标分别存放在pos[0][0]、pos[0][1]、pos[1[0]、pos[1][1]中,将其在页面中的width和height值分别存放在areas[0][0]、areas[0][1]、areas[1][0]、areas[1][1]中,依此类推。
(iii)如果某一列的元素个数小于N,该列中的元素列下标从0开始依次往后排,并将元素的位置和区域值填充到pos和areas的对应位置。行的处理方法类似。
5、初始化一维数组crossCols[M*N]和crossRows[M*N],这两个数组分别用来存放元素所跨的列数和行数。
6、初始化一维数组startColIndex[M*N]和startRowIndex[M*N],这两个数组分别用来存放元素起始的行和列下标。
步骤S103,当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
步骤S104,当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
在所述页面上,接收用户的遥控器按键指令,判断遥控器按键指令对应的按键键值是否为方向键,如果不是方向键,则算法执行结束;如果是方向键,则判断方向键为上、下、左、右键,并分别进行处理,进入对应的方向键焦点移动处理算法模块进行焦点移动控制。
具体地,以方向键为向下键为例,如图4所示,图4是本实施例向下键焦点移动处理算法流程示意图。具体流程如下:
(1)如果rowIndex==rowCount-1,表明当前焦点元素位于页面的最后一行,转(11),算法结束;
(2)否则,计算当前元素的下标值,计算方式如下:
oldPosIndex=colIndex*rowCount+rowIndex;
(3)获取当前焦点元素所跨的行数,获取方式如下:
curCrossRows=crossRows[oldPosIndex];
(4)获取当前焦点元素的起始行下标,获取方式如下:
startRowIdx=startRowIndex[oldPosIndex];
(5)计算下一个焦点元素的行下标,计算方式如下:
rowIndex=startRowIdx+curCrossRows;
(6)如果下一个焦点元素的行下标超出了行数,即:
rowIndex>rowCount-1
设置行下标为rowCount-1,即:rowIndex=rowCount-1;转(11),算法结束。
(7)否则,如果rowIndex<=rowCount-1,表明下一个焦点元素位置有效,计算下一个焦点元素在pos和areas数组中的下标值,计算方式如下:
posIndex=colIndex*rowCount+rowIndex;
(8)获取下一个焦点元素在positions和areas数组中的位置和区域值。首先,获取位置和区域值的值对:
varpos=[];
pos=positions[posIndex];
varars=[];
ars=areas[posIndex];
pos[2]和ars[2]本身是一个长度为2的一维数组,其中,pos[0]和pos[1]分别保存的是下一个焦点的x和y坐标值,ars[0]和ars[1]分别保存的是下一个焦点的width和height值;
(9)判断位置和区域的值是否为(-1,-1),如果是,表明该候选焦点是一个无效焦点,设置行下标为rowCount-1,即:rowIndex=rowCount-1;转(11),算法结束:
(10)否则,更新焦点的坐标和区域值,更新方式如下:
varnfocus=$("focus");
nfocus.style.left=pos[0]+"px";
nfocus.style.top=pos[1]+"px";
nfocus.style.width=ars[0]+"px";
nfocus.style.height=ars[1]+"px";
(11)焦点移动到下一个位置,算法结束。
上述过程是以向下键焦点移动处理算法为例,实际上,上、下、左、右键,可以分别有对应的焦点处理模块。其它三个方向键(上、左、右键)的焦点移动处理算法也类似,在此不再赘述。
相比现有技术,本实施例方案,采用自定义焦点移动算法对当前焦点进行移动控制,该算法的优点是逻辑清晰,通用性强,只需要引入少量的数据结构,就能实现不依赖于具体的页面布局的通用焦点移动算法,该算法适用于所有页面,且不需要针对各个页面分别制定不同的规则,从而克服了通常的业务实现的焦点算法需要引入大量的附加规则的弊端,大大提高了算法的通用性。同时,能够定制焦点移动的特效,提高用户体验。
对应地,提出本发明界面焦点移动控制装置实施例。
如图5所示,本发明较佳实施例提出一种界面焦点移动控制装置,包括:屏蔽模块201、初始化模块202、判断模块203以及焦点移动控制模块204,其中:
屏蔽模块201,用于当用户访问页面时,屏蔽浏览器的焦点移动算法;
初始化模块202,用于对自定义焦点移动算法的数据结构进行初始化;
判断模块203,用于当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
焦点移动控制模块204,用于当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
本实施例方案涉及电视界面焦点的移动控制,其中,焦点的移动触发可以由用户通过遥控器实现,用户通过遥控器在电视界面上移动焦点,搜索自己感兴趣的内容。
本发明实施例方案可以克服传统的自定义焦点算法需要针对不同的页面布局分别引入大量的附加规则,导致焦点算法逻辑比较混乱,算法通用性不强的缺陷,采用的自定义焦点移动算法通用性强,算法逻辑清晰,适用于所有页面,不需要针对不同页面的布局特点添加大量的规则。
具体地,首先,当用户访问电视的当前页面时,屏蔽浏览器的焦点移动算法。因为在页面移动焦点时,默认情况下浏览器会对焦点移动进行处理。对于本系统,由于不希望浏览器处理焦点移动,因此,在进入页面时,通过业务设置的方法屏蔽掉浏览器的焦点移动算法。具体而言,是调用Navigation对象的disableDefaultNavigation()方法屏蔽掉浏览器的焦点移动算法。这样,保证了业务可以按照自己的方式来处理焦点移动。
之后,对自定义焦点移动算法的数据结构进行初始化。本系统为自定义焦点算法定义了一套数据结构,在进入页面时,要先对这些数据结构进行初始化和赋值操作,以便后面的自定义焦点算法模块使用。
具体地,如图2所示,图2是本实施例自定义焦点算法数据结构初始化流程示意图。其初始化流程如下:
1、定制焦点框的风格。
本实施例可以自定义焦点框的风格,以满足不同的焦点移动效果。由于浏览器的焦点框存在风格比较单一且对于所有页面风格都相同的局限性,本实施例自定义焦点算法可以针对不同页面灵活定制焦点框的风格,以满足不同的页面需求,而且焦点移动的用户体验也更好。自定义焦点框的风格主要包括焦点框的位置、大小、圆角效果(圆角率)、边框效果(边框粗细、边框颜色等)、z序、焦点移动时的滑动效果等。下面是自定义焦点框标签及其风格示例:
2、划分页面区域。
根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表行数和列数。其中,由于页面中元素位置和大小通常都是不规则的,因此,M和N的取值都是行和列中最大的元素个数值。例如,对于图3所示的页面布局,M=3,N=5。
3、参数初始化。
参数初始化包括当前焦点元素的行下标值rowIndex、列下标值colIndex、页面的行数rowCount和列数colCount等。初始值如下:
varrowIndex=0;//当前焦点的行下标,从0开始。
varcolIndex=0;//当前焦点的列下标,从0开始。
varrowCount=M;//页面元素行数。
varcolCount=N;//页面元素列数。
4、初始化二维数组pos[M*N][2]和areas[M*N][2],这两个数组分别用来存放元素的位置和大小信息。初始化包括三步:
(i)将数组pos和areas中所有元素的值均置为-1,表示元素初始位置和大小均为无效值:
(ii)根据元素的实际位置和区域值填充数组pos和areas。例如:对于第一个元素,由于其占2行2列,因此,将其在页面中的x和y坐标分别存放在pos[0][0]、pos[0][1]、pos[1[0]、pos[1][1]中,将其在页面中的width和height值分别存放在areas[0][0]、areas[0][1]、areas[1][0]、areas[1][1]中,依此类推。
(iii)如果某一列的元素个数小于N,该列中的元素列下标从0开始依次往后排,并将元素的位置和区域值填充到pos和areas的对应位置。行的处理方法类似。
5、初始化一维数组crossCols[M*N]和crossRows[M*N],这两个数组分别用来存放元素所跨的列数和行数。
6、初始化一维数组startColIndex[M*N]和startRowIndex[M*N],这两个数组分别用来存放元素起始的行和列下标。
之后,当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键。
如果不是方向键,则算法执行结束;如果是方向键,则判断方向键为上、下、左、右键,并分别进行处理,进入对应的方向键焦点移动处理算法模块进行焦点移动控制。
具体地,以方向键为下键为例,如图4所示,图4是本实施例向下键焦点移动处理算法流程示意图。具体流程如下:
(1)如果rowIndex==rowCount-1,表明当前焦点元素位于页面的最后一行,转(11),算法结束;
(2)否则,计算当前元素的下标值,计算方式如下:
oldPosIndex=colIndex*rowCount+rowIndex;
(3)获取当前焦点元素所跨的行数,获取方式如下:
curCrossRows=crossRows[oldPosIndex];
(4)获取当前焦点元素的起始行下标,获取方式如下:
startRowIdx=startRowIndex[oldPosIndex];
(5)计算下一个焦点元素的行下标,计算方式如下:
rowIndex=startRowIdx+curCrossRows;
(6)如果下一个焦点元素的行下标超出了行数,即:
rowIndex>rowCount-1
设置行下标为rowCount-1,即:rowIndex=rowCount-1;转(11),算法结束。
(7)否则,如果rowIndex<=rowCount-1,表明下一个焦点元素位置有效,计算下一个焦点元素在pos和areas数组中的下标值,计算方式如下:
posIndex=colIndex*rowCount+rowIndex;
(8)获取下一个焦点元素在positions和areas数组中的位置和区域值。首先,获取位置和区域值的值对:
varpos=[];
pos=positions[posIndex];
varars=[];
ars=areas[posIndex];
pos[2]和ars[2]本身是一个长度为2的一维数组,其中,pos[0]和pos[1]分别保存的是下一个焦点的x和y坐标值,ars[0]和ars[1]分别保存的是下一个焦点的width和height值;
(9)判断位置和区域的值是否为(-1,-1),如果是,表明该候选焦点是一个无效焦点,设置行下标为rowCount-1,即:rowIndex=rowCount-1;转(11),算法结束:
(10)否则,更新焦点的坐标和区域值,更新方式如下:
varnfocus=$("focus");
nfocus.style.left=pos[0]+"px";
nfocus.style.top=pos[1]+"px";
nfocus.style.width=ars[0]+"px";
nfocus.style.height=ars[1]+"px";
(11)焦点移动到下一个位置,算法结束。
上述过程是以向下键焦点移动处理算法为例,实际上,上、下、左、右键,可以分别有对应的焦点处理模块。其它三个方向键(上、左、右键)的焦点移动处理算法也类似,在此不再赘述。
相比现有技术,本实施例方案,采用自定义焦点移动算法对当前焦点进行移动控制,该算法的优点是逻辑清晰,通用性强,只需要引入少量的数据结构,就能实现不依赖于具体的页面布局的通用焦点移动算法,该算法适用于所有页面,且不需要针对各个页面分别制定不同的规则,从而克服了通常的业务实现的焦点算法需要引入大量的附加规则的弊端,大大提高了算法的通用性。同时,能够定制焦点移动的特效,提高用户体验。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种界面焦点移动控制方法,其特征在于,包括:
当用户访问页面时,屏蔽浏览器的焦点移动算法;
对自定义焦点移动算法的数据结构进行初始化,包括:定制页面焦点框的风格、划分页面区域、对页面元素的参数进行初始化,以及分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组;
当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
2.根据权利要求1所述的方法,其特征在于,所述屏蔽浏览器的焦点移动算法的步骤包括:
调用Navigation对象的disableDefaultNavigation()方法屏蔽所述浏览器的焦点移动算法。
3.根据权利要求1或2所述的方法,其特征在于,
所述定制页面焦点框的风格包括:定制焦点框的位置、大小、圆角效果、边框效果、z序、焦点移动时的滑动效果;
所述划分页面区域包括:根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表页面的行数和列数;
所述页面元素的参数包括:当前焦点所在元素的行下标值、列下标值、页面的行数和列数。
4.根据权利要求3所述的方法,其特征在于,所述分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组的步骤包括:
保存页面元素的位置和区域信息到二维数组pos[M][N]和areas[M][N]中;
保存元素所跨的列数和行数到一维数组crossCols[M*N]和crossRows[M*N];
保存元素起始的行和列下标到一维数组startColIndex[M*N]和startRowIndex[M*N]。
5.根据权利要求4所述的方法,其特征在于,所述方向键为向下键,所述依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制的步骤包括:
采用向下键对应的自定义焦点移动算法对当前焦点进行移动控制,具体包括:
判断当前焦点元素是否位于页面的最后一行;若是,则算法结束;否则
计算当前元素的下标值;
获取当前焦点元素所跨的行数;
获取当前焦点元素的起始行下标;
计算下一个焦点元素的行下标;
如果下一个焦点元素的行下标超出了行数,则算法结束;否则
计算下一个焦点元素在pos和areas数组中的下标值;
获取下一个焦点元素在pos和areas数组中的位置和区域值;
判断所述下一个焦点元素在pos和areas数组中的位置和区域值的值是否为(-1,-1),若是,则设置行下标为rowCount-1,算法结束;否则
更新焦点的坐标和区域值,将焦点移动到下一个位置。
6.一种界面焦点移动控制装置,其特征在于,包括:
屏蔽模块,用于当用户访问页面时,屏蔽浏览器的焦点移动算法;
初始化模块,用于对自定义焦点移动算法的数据结构进行初始化,包括:定制页面焦点框的风格、划分页面区域、对页面元素的参数进行初始化,以及分别保存页面元素的位置和区域信息、元素所跨的列数和行数、元素起始的行和列下标到设定的数组;
判断模块,用于当在所述页面上,接收到用户的遥控器按键指令时,判断遥控器按键指令对应的按键键值是否为方向键;
焦点移动控制模块,用于当所述按键键值为方向键时,依据所述初始化后的数据结构,采用自定义焦点移动算法中对应的方向键焦点移动算法对当前焦点进行移动控制。
7.根据权利要求6所述的装置,其特征在于,
所述屏蔽模块,还用于调用Navigation对象的disableDefaultNavigation()方法屏蔽所述浏览器的焦点移动算法。
8.根据权利要求6或7所述的装置,其特征在于,
所述定制页面焦点框的风格包括:定制焦点框的位置、大小、圆角效果、边框效果、z序、焦点移动时的滑动效果;所述划分页面区域包括:根据页面中元素的布局,将页面划分为M*N个小区域,M和N分别代表页面的行数和列数;所述页面元素的参数包括:当前焦点所在元素的行下标值、列下标值、页面的行数和列数。
9.根据权利要求8所述的装置,其特征在于,
所述初始化模块,还用于保存页面元素的位置和区域信息到二维数组pos[M][N]和areas[M][N]中;
保存元素所跨的列数和行数到一维数组crossCols[M*N]和crossRows[M*N];
保存元素起始的行和列下标到一维数组startColIndex[M*N]和startRowIndex[M*N]。
10.根据权利要求9所述的装置,其特征在于,所述方向键为向下键;
所述焦点移动控制模块,还用于采用向下键对应的自定义焦点移动算法对当前焦点进行移动控制,具体用于:
判断当前焦点元素是否位于页面的最后一行;若是,则控制算法结束;否则计算当前元素的下标值;获取当前焦点元素所跨的行数;获取当前焦点元素的起始行下标;计算下一个焦点元素的行下标;如果下一个焦点元素的行下标超出了行数,则控制算法结束;否则计算下一个焦点元素在pos和areas数组中的下标值;获取下一个焦点元素在pos和areas数组中的位置和区域值;判断所述下一个焦点元素在pos和areas数组中的位置和区域值的值是否为(-1,-1),若是,则设置行下标为rowCount-1,控制算法结束;否则更新焦点的坐标和区域值,将焦点移动到下一个位置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836946.1A CN105812944B (zh) | 2014-12-29 | 2014-12-29 | 界面焦点移动控制方法及装置 |
PCT/CN2015/090243 WO2016107224A1 (zh) | 2014-12-29 | 2015-09-22 | 界面焦点移动控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836946.1A CN105812944B (zh) | 2014-12-29 | 2014-12-29 | 界面焦点移动控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105812944A true CN105812944A (zh) | 2016-07-27 |
CN105812944B CN105812944B (zh) | 2019-01-18 |
Family
ID=56284140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836946.1A Active CN105812944B (zh) | 2014-12-29 | 2014-12-29 | 界面焦点移动控制方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105812944B (zh) |
WO (1) | WO2016107224A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162286A (zh) * | 2016-08-30 | 2016-11-23 | 北京玖扬博文文化发展有限公司 | 一种Linux机顶盒焦点控制方法 |
CN106454530A (zh) * | 2016-10-17 | 2017-02-22 | 山东浪潮商用系统有限公司 | 一种焦点控制方法和装置 |
CN107071583A (zh) * | 2017-05-03 | 2017-08-18 | 四川易迅通健康医疗技术发展有限公司 | 一种用于iptv平台的epg页面焦点控制方法 |
CN107087234A (zh) * | 2017-03-30 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种焦点控制方法及系统 |
WO2018176843A1 (zh) * | 2017-03-30 | 2018-10-04 | 武汉斗鱼网络科技有限公司 | 一种焦点越界搜索方法、装置、智能设备及可读存储介质 |
CN108874492A (zh) * | 2018-06-15 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种焦点框定位的方法和装置 |
CN109343923A (zh) * | 2018-09-20 | 2019-02-15 | 聚好看科技股份有限公司 | 一种智能电视机的用户界面焦点框缩放方法及设备 |
CN109710084A (zh) * | 2018-12-28 | 2019-05-03 | 竞技世界(北京)网络技术有限公司 | 一种方向按键选择目标的方法 |
CN110022492A (zh) * | 2019-04-03 | 2019-07-16 | 杭州当贝网络科技有限公司 | 智能电视终端焦点适配方法及装置 |
CN111459582A (zh) * | 2019-01-22 | 2020-07-28 | 深圳市茁壮网络股份有限公司 | 一种焦点元素处理方法及装置 |
CN112351347A (zh) * | 2020-10-26 | 2021-02-09 | 深圳Tcl新技术有限公司 | 屏幕焦点移动显示方法、显示设备及存储介质 |
CN112565898A (zh) * | 2020-11-27 | 2021-03-26 | 福州智象信息技术有限公司 | 一种基于智能电视操作系统上的焦点移动方法及系统 |
CN113596592A (zh) * | 2021-07-13 | 2021-11-02 | 深圳市酷开网络科技股份有限公司 | 一种电视网页焦点控制方法、装置、终端设备及存储介质 |
CN113645489A (zh) * | 2021-08-26 | 2021-11-12 | 帕科视讯科技(杭州)股份有限公司 | 一种iptv平台epg动态焦点配置及移动的方法 |
CN113852847A (zh) * | 2021-06-29 | 2021-12-28 | 天翼智慧家庭科技有限公司 | 一种实现epg焦点配置及显示的方法 |
CN114501092A (zh) * | 2022-02-21 | 2022-05-13 | 海看网络科技(山东)股份有限公司 | 一种epg网格化布局下自动获取焦点的方法 |
CN115426511A (zh) * | 2022-09-02 | 2022-12-02 | 帕科视讯科技(杭州)股份有限公司 | 一种基于iptv规范的epg自动寻找区域焦点的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416189B (zh) * | 2019-08-23 | 2023-04-18 | 北京字节跳动网络技术有限公司 | 跨页寻焦方法、装置及电子设备 |
CN112860982B (zh) * | 2019-11-27 | 2024-05-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112272329B (zh) * | 2020-10-28 | 2023-02-28 | 海看网络科技(山东)股份有限公司 | 一种加快安卓列表显示速度的方法 |
CN113613052B (zh) * | 2021-06-30 | 2023-02-28 | 济南浪潮数据技术有限公司 | 一种Web页面的焦点切换方法、装置及设备 |
CN113608499B (zh) * | 2021-08-26 | 2022-08-26 | 江西理工大学 | 一种提升二维运动流畅程度的方法 |
CN114063993B (zh) * | 2022-01-12 | 2022-07-26 | 北京智象信息技术有限公司 | 一种焦点移动处理方法、系统及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101365105A (zh) * | 2008-10-10 | 2009-02-11 | 中国电信股份有限公司 | 一种iptv电子节目指南显示控制的方法和机顶盒 |
JP2010128567A (ja) * | 2008-11-25 | 2010-06-10 | Nec Corp | カーソル移動制御方法及び装置、プログラム |
CN102547463A (zh) * | 2011-12-15 | 2012-07-04 | Tcl集团股份有限公司 | 一种电视机界面焦点定位方法、装置及电视机 |
CN103473055A (zh) * | 2013-09-06 | 2013-12-25 | 乐视致新电子科技(天津)有限公司 | 一种焦点移动控制方法及装置 |
CN103713834A (zh) * | 2013-12-30 | 2014-04-09 | 深圳Tcl新技术有限公司 | 焦点定位的方法及装置 |
CN103841443A (zh) * | 2012-11-23 | 2014-06-04 | 中兴通讯股份有限公司 | 定制交互式电视机顶盒页面焦点移动方式的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261642A (zh) * | 2008-04-10 | 2008-09-10 | 深圳市迅雷网络技术有限公司 | 一种调整互联网页面布局的方法及装置 |
CN102857823A (zh) * | 2012-08-24 | 2013-01-02 | 乐视网信息技术(北京)股份有限公司 | 基于电视的web页面焦点控制方法 |
CN103544000B (zh) * | 2013-07-05 | 2017-06-06 | Tcl集团股份有限公司 | 一种用户界面的移动操作方法及系统 |
-
2014
- 2014-12-29 CN CN201410836946.1A patent/CN105812944B/zh active Active
-
2015
- 2015-09-22 WO PCT/CN2015/090243 patent/WO2016107224A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101365105A (zh) * | 2008-10-10 | 2009-02-11 | 中国电信股份有限公司 | 一种iptv电子节目指南显示控制的方法和机顶盒 |
JP2010128567A (ja) * | 2008-11-25 | 2010-06-10 | Nec Corp | カーソル移動制御方法及び装置、プログラム |
CN102547463A (zh) * | 2011-12-15 | 2012-07-04 | Tcl集团股份有限公司 | 一种电视机界面焦点定位方法、装置及电视机 |
CN103841443A (zh) * | 2012-11-23 | 2014-06-04 | 中兴通讯股份有限公司 | 定制交互式电视机顶盒页面焦点移动方式的方法及装置 |
CN103473055A (zh) * | 2013-09-06 | 2013-12-25 | 乐视致新电子科技(天津)有限公司 | 一种焦点移动控制方法及装置 |
CN103713834A (zh) * | 2013-12-30 | 2014-04-09 | 深圳Tcl新技术有限公司 | 焦点定位的方法及装置 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162286B (zh) * | 2016-08-30 | 2019-03-19 | 北京玖扬博文文化发展有限公司 | 一种Linux机顶盒焦点控制方法 |
CN106162286A (zh) * | 2016-08-30 | 2016-11-23 | 北京玖扬博文文化发展有限公司 | 一种Linux机顶盒焦点控制方法 |
CN106454530A (zh) * | 2016-10-17 | 2017-02-22 | 山东浪潮商用系统有限公司 | 一种焦点控制方法和装置 |
CN107087234A (zh) * | 2017-03-30 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种焦点控制方法及系统 |
WO2018176843A1 (zh) * | 2017-03-30 | 2018-10-04 | 武汉斗鱼网络科技有限公司 | 一种焦点越界搜索方法、装置、智能设备及可读存储介质 |
CN107087234B (zh) * | 2017-03-30 | 2019-08-23 | 武汉斗鱼网络科技有限公司 | 一种焦点控制方法及系统 |
CN107071583A (zh) * | 2017-05-03 | 2017-08-18 | 四川易迅通健康医疗技术发展有限公司 | 一种用于iptv平台的epg页面焦点控制方法 |
CN108874492A (zh) * | 2018-06-15 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种焦点框定位的方法和装置 |
CN109343923B (zh) * | 2018-09-20 | 2023-04-07 | 聚好看科技股份有限公司 | 一种智能电视机的用户界面焦点框缩放方法及设备 |
CN109343923A (zh) * | 2018-09-20 | 2019-02-15 | 聚好看科技股份有限公司 | 一种智能电视机的用户界面焦点框缩放方法及设备 |
CN109710084A (zh) * | 2018-12-28 | 2019-05-03 | 竞技世界(北京)网络技术有限公司 | 一种方向按键选择目标的方法 |
CN111459582A (zh) * | 2019-01-22 | 2020-07-28 | 深圳市茁壮网络股份有限公司 | 一种焦点元素处理方法及装置 |
CN110022492B (zh) * | 2019-04-03 | 2021-10-19 | 杭州当贝网络科技有限公司 | 智能电视终端焦点适配方法及装置 |
CN110022492A (zh) * | 2019-04-03 | 2019-07-16 | 杭州当贝网络科技有限公司 | 智能电视终端焦点适配方法及装置 |
CN112351347A (zh) * | 2020-10-26 | 2021-02-09 | 深圳Tcl新技术有限公司 | 屏幕焦点移动显示方法、显示设备及存储介质 |
CN112351347B (zh) * | 2020-10-26 | 2024-02-09 | 深圳Tcl新技术有限公司 | 屏幕焦点移动显示方法、显示设备及存储介质 |
CN112565898A (zh) * | 2020-11-27 | 2021-03-26 | 福州智象信息技术有限公司 | 一种基于智能电视操作系统上的焦点移动方法及系统 |
CN113852847A (zh) * | 2021-06-29 | 2021-12-28 | 天翼智慧家庭科技有限公司 | 一种实现epg焦点配置及显示的方法 |
CN113596592A (zh) * | 2021-07-13 | 2021-11-02 | 深圳市酷开网络科技股份有限公司 | 一种电视网页焦点控制方法、装置、终端设备及存储介质 |
CN113596592B (zh) * | 2021-07-13 | 2023-10-31 | 深圳市酷开网络科技股份有限公司 | 一种电视网页焦点控制方法、装置、终端设备及存储介质 |
CN113645489A (zh) * | 2021-08-26 | 2021-11-12 | 帕科视讯科技(杭州)股份有限公司 | 一种iptv平台epg动态焦点配置及移动的方法 |
CN114501092A (zh) * | 2022-02-21 | 2022-05-13 | 海看网络科技(山东)股份有限公司 | 一种epg网格化布局下自动获取焦点的方法 |
CN115426511A (zh) * | 2022-09-02 | 2022-12-02 | 帕科视讯科技(杭州)股份有限公司 | 一种基于iptv规范的epg自动寻找区域焦点的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016107224A1 (zh) | 2016-07-07 |
CN105812944B (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105812944A (zh) | 界面焦点移动控制方法及装置 | |
CN108401177B (zh) | 视频播放方法、服务器及视频播放系统 | |
CN102662566B (zh) | 屏幕内容放大显示方法及终端 | |
EP3220249B1 (en) | Method, device and terminal for implementing regional screen capture | |
CN107835461B (zh) | 焦点移动控制方法、智能电视及计算机可读存储介质 | |
CN105373567B (zh) | 页面生成方法及客户端 | |
US20140072232A1 (en) | Super-resolution method and apparatus for video image | |
CN110517283A (zh) | 姿态跟踪方法、装置及计算机可读存储介质 | |
CN104133683A (zh) | 一种截取屏幕图片的方法及装置 | |
CN101834938A (zh) | 一种实现移动终端横竖屏切换的装置及方法 | |
US9196055B2 (en) | Method and apparatus for providing a mechanism for gesture recognition | |
US9798437B2 (en) | Information processing method and electronic device | |
CN106251348A (zh) | 一种面向深度相机的自适应多线索融合背景减除方法 | |
CN105868240A (zh) | 一种自适应显示网页的方法及装置 | |
CN102044034A (zh) | 商品型录展示系统及方法 | |
CN111210434A (zh) | 基于天空识别的图像替换方法及系统 | |
CN105307048B (zh) | 一种基于WebKit内核智能电视的焦点查询方法 | |
CN105912209A (zh) | 图像显示方法及装置 | |
EP2801920A1 (en) | Method and apparatus for displaying web page | |
CN105139372A (zh) | 一种用于前景检测的码本改进算法 | |
CN105872691A (zh) | 浏览器控制方法及装置 | |
CN102905194A (zh) | 数字电视浏览器中焦点的移动方法、装置和数字电视 | |
CN105824550A (zh) | 一种屏幕保护界面控制方法和装置 | |
CN103593822B (zh) | 对数据图像进行磨砂特效处理的方法和装置 | |
CN113051495B (zh) | 一种web页面焦点导航方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |