CN107003803B - 用于动态内容的滚动条 - Google Patents

用于动态内容的滚动条 Download PDF

Info

Publication number
CN107003803B
CN107003803B CN201580068563.7A CN201580068563A CN107003803B CN 107003803 B CN107003803 B CN 107003803B CN 201580068563 A CN201580068563 A CN 201580068563A CN 107003803 B CN107003803 B CN 107003803B
Authority
CN
China
Prior art keywords
scrollbar
scroll
content
scroll bar
dynamic
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.)
Active
Application number
CN201580068563.7A
Other languages
English (en)
Other versions
CN107003803A (zh
Inventor
H.加布里杰尔斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107003803A publication Critical patent/CN107003803A/zh
Application granted granted Critical
Publication of CN107003803B publication Critical patent/CN107003803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • G06F3/04855Interaction with scrollbars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文描述了针对用于动态内容的滚动条的技术和装置。在一个或多个实现中,初始内容的一部分与被配置用于选择导航到初始内容的其他部分的滚动条一起显示在用户界面中。当滚动条被选择时,检测用于在用户界面中显示的动态内容。作为响应,激活用于滚动条的动态滚动模式以使得能够导航到初始内容和动态内容。动态滚动模式在不改变滚动条的滑块的视觉位置的情况下动态地调整滚动条的一个或多个滚动比率。

Description

用于动态内容的滚动条
技术背景
常规的滚动条包括可以沿着轨道拖动以跳转到文档(例如,网页)中的特定位置的滑块(thumb),其例如用来向用户提供文档内当前位置的视觉指示。例如,如果滑块是在滚动条的轨道向下的半途中,则它往往指示用户在通过该文档内容的半途中。常规滚动条的设计适用于包含静态内容——诸如预定的页面长度、要显示的预定数量的项目等等——的文档。
然而,现今的许多文档(比如网页)在用户操纵滚动条时动态地更新要显示的内容,比如当用户靠近或到达当前可用内容的结尾时添加附加项目。响应于接收到动态内容,许多常规滚动条在用户正拖动滚动条滑块时迫使滚动条的滑块的位置跳跃。其他常规滚动条阻止导航到新添加的动态内容,直到滑块被释放(这立即导致滑块的位置跳跃)。当鼠标指针正被用于操纵滚动条时,滑块的这种无规律的跳跃会降低用户的滚动能力的效率,因为鼠标指针和滑块的相对位置在无规律地跳跃。类似地,无规律的跳跃可能导致用户在网页内丢失它们的位置。当用户的手指正用来操纵触摸设备上的滚动条时,这可导致无规律的行为,因为用户的手指保持在滑块的原始位置,而这在下一个触摸结果被处理时可导致所显示的内容中的大的“跳跃”。因此,使用常规滚动条来导航具有动态扩展的内容的文档对用户而言可能是混乱和令人沮丧的。
发明内容
本文描述了针对用于动态内容的滚动条的技术和装置。在一个或多个实现中,初始内容的一部分与被配置用于选择导航到该初始内容的其他部分的滚动条一起显示在用户界面中。当滚动条被选择时,检测用于在用户界面中显示的动态内容。作为响应,激活用于滚动条的动态滚动模式以使得能够导航到该初始内容和动态内容。动态滚动模式在基本不改变滚动条的滑块的视觉位置的情况下动态地调整滚动条的一个或多个滚动比率。
本概要被提供来以简化的形式介绍概念的选择,这些概念在下面的详细描述中进一步被描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算用于帮助确定所要求保护的主题的范围。
附图说明
参考附图描述详细说明。在整个附图中使用相同的数字来附注类似的特征和组件。
图1a是可操作来支持本文描述的技术的示例实现中的环境的图示。
图1b图示了按照一个或多个实现的、图1a中描述的滚动条用户界面和滚动条的更详细的示例。
图2图示了其中滚动条模块响应于检测到动态内容而启动动态滚动模式的系统。
图3图示了在滚动条用户界面中显示内容的示例。
图4图示了在滚动条滑块被选择时检测动态内容的示例。
图5图示了按照一个或多个实现的、基于线性关系目标位置来动态调整用于滚动条的滚动比率的示例。
图6图示了按照一个或多个实现的、基于基线位置来动态调整滚动条的滚动比率的示例。
图7图示了按照一个或多个实现的、改变滚动条的视觉外观的示例。
图8图示了激活用于滚动条的动态滚动模式的示例方法。
图9图示了包括示例设备的示例系统,其可以实现用于动态内容的滚动条的实施例。
具体实施方式
概述
常规的滚动条用户界面保持滚动条的位置与在用户界面中所显示内容的位置之间的线性关系。例如,如果滚动条位于用户界面向下的半途中,则它往往指示用户在通过内容的半途中。这种设计适用于包含静态内容——诸如预定的页面长度、要显示的预定数量的项目等等——的文档。
然而,现今的许多文档(比如网页)在用户操纵滚动条向下滚动通过内容时动态地更新要显示的内容。例如,诸如Facebook.com的社交网站可以在“新闻馈送”中显示给用户的新闻项目列表,其中每个新闻项目对应于与用户的朋友之一相关联的故事或事件。用户的新闻馈送可包含在多日内累积的数千个新闻项目。由于大量的新闻馈送项目,所以将用户的新闻馈送中的每个新闻项目加载到社交网络用户界面中以供显示是耗时的。
因此,具有大量内容的文档可以初始地仅加载一部分内容。如果用户向下滚动到初始内容的结尾,则可以动态地添加附加内容,以使用户能够继续滚动通过附加内容。然而,附加内容更改了滚动条的位置与在用户界面中所显示内容的位置之间的线性关系。
作为示例,考虑初始地将社交网站的100个新闻项目加载到web浏览器中以供显示。web浏览器针对初始内容把滚动条配置成使得滚动到底部将导致显示第100个项目。当用户操纵滚动条向下滚动到100个新闻项目的底部时,社交网站可以加载另外100个新闻项目以供显示。在这一点,滚动条的滑块的位置靠近滚动条轨道的底部,但是现在大约有100个新闻项目在当前显示的新闻项目之上,并且在当前显示的新闻项目之下有100个项目。因此,如果保持直接的线性关系,则滚动条的滑块现在应该大致位于滚动条轨道的中部,而不是靠近底部。
常规的滚动条以各种各样不同的方式处理动态添加的内容。一些常规的解决方案促使滚动条的滑块跳跃以保持与动态添加的内容的线性关系。例如,在上面的示例中,滚动条的滑块可以被强迫从滚动条轨道的底部跳到滚动条轨道的中部。当鼠标指针正被用于操纵滚动条的滑块时,这可能导致鼠标指针和滚动条滑块的相对位置无规律地跳动,并可能导致用户在网页中丢失它们的位置。例如,用户可能已经将先前的位置记忆为显示特定的感兴趣项目,但是由于在添加了附加的动态内容之后应用了新的比率,所以不能容易地回滚到那个位置。类似地,当用户的手指正用于操纵触摸设备上的滚动条时,这可以导致无规律的行为,因为用户的手指保持在滚动条的原始位置,这会在处理下一个用户触摸结果时导致所显示的内容中的大的“跳跃”。
替换地,一些常规解决方案迫使所显示的内容跳到与滑块在轨道内的位置成比例的位置。在上面的示例中,由于滑块靠近轨道的底部,所以网页可以跳跃以显示新添加的内容的最后的新闻项目。因此,该解决方案可导致所显示的内容中的出乎意料的大跳跃。
还有其它常规解决方案可以在选择并正操纵滚动条时简单地避免对内容的更新。然后,当滚动条被释放时,滚动条的位置可以在视觉上“跳”一个相当大的距离,这可能导致用户在文档内丢失它们的位置。
然而,本文描述的技术使得实现从滚动条滑块的位置和内容位置之间的线性关系到非线性关系的动态的临时改变。可以动态地偏置(bias)非线性关系,促使滚动条滑块的位置趋向于标准的线性关系,而同时仍允许自然感觉的滚动。
在一个或多个实现中,当用户正处在滚动内容的过程中(例如,将一根手指保持在滚动条滑块上或用鼠标拖动滚动条滑块)时,检测动态内容。响应于检测到动态内容,激活动态滚动模式。动态滚动模式在不改变滚动条滑块的视觉位置的情况下动态地调整滚动条的滚动比率。在某些情况下,动态滚动模式对于滚动条的至少两个不同方向应用不同的滚动比率,使得滚动条滑块在任一方向上的基本相同的移动将减小在滚动条滑块的所显示位置与滚动条滑块在维持滚动条滑块和内容的线性关系的情况下将处在的位置之间的增量(delta)(例如,向下比向上更快地滚动,直至回到直接线性关系)。
与常规解决方案不同,所描述的技术使得能够在滚动条滑块被选择(即使没有释放滚动条滑块)的时候滚动到任何和所有动态添加的内容。此外,当动态地添加内容时,滚动条滑块不会四处跳跃到滚动条轨道上的不同位置。因此,所描述的技术使得用户能够使用滚动条继续内容的导航,而不必取消对滚动条滑块的选择、然后在新位置重新选择滚动条滑块,因此与常规的滚动条解决方案相比,其对于用户来说是较少混乱的。
示例环境
图1a是可操作来支持本文描述的技术的示例实现中的环境100的图示。所图示的环境100包括具有一个或多个硬件组件的计算设备102,硬件组件的示例包括处理系统104和被示为存储器106的计算机可读存储介质,然而如下文进一步描述的也可以设想到其它组件。
计算设备102可以以各种各样的方式被配置。例如,计算设备可以被配置为能够通过网络进行通信的计算机,诸如台式计算机、移动站、娱乐器具、通信地耦合到显示设备的机顶盒、无线电话、游戏控制台、教育用交互式设备、销售点设备等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。另外,虽然示出了单个计算设备102,但是计算设备102可以代表多个不同的设备,诸如被企业用来比如通过web服务执行操作的多个服务器、远程控制器和机顶盒组合、被配置来捕获手势的图像捕获设备和游戏控制台等。
计算设备102被进一步图示为包括操作系统108,然而也可以设想在其中不采用操作系统的其它实施例。操作系统108被配置为将计算设备102的底层功能性抽象到可在计算设备102上执行的应用110。例如,操作系统108可以抽象计算设备102的处理系统104、存储器106和/或网络功能性,使得应用110可以被编写而无需知道“如何”实现该底层功能性。应用110例如可以向操作系统108提供要再现和显示的数据,而无需了解将如何执行该再现。操作系统108还可以代表各种各样的其他功能性,比如管理可由计算设备102的用户导航的文件系统和用户界面。
计算设备102被进一步图示为包括显示设备112,其可被控制来再现或显示图像以供观看。在环境100中,显示设备112被图示为计算设备102的集成组件。替换地,显示设备可被实现为计算设备102的外部外围组件。在一个或多个实现中,显示设备112被实现为触摸屏显示器,其被配置为比如从用户手114的手指、触控笔或手写笔等等接收触摸输入。在一个或多个实现中,显示设备112可以被配置为接收无触摸手势输入,比如在显示设备112附近挥动手或手臂。显示设备112还可以经由诸如鼠标、键盘、摄像机、加速度计等其他输入设备接收输入。
显示设备112被配置为在显示设备112上显示包括滚动条118的滚动条用户界面116。滚动条用户界面116可以以各种各样不同的方式被实现来显示各种各样不同类型的内容。例如,滚动条用户界面116可以被实现为显示网页内容的web浏览器用户界面、显示照片和/或视频列表的媒体内容应用用户界面、显示联系人列表的联系人应用用户界面等等。
滚动条用户界面116被配置为显示内容的一部分,并且使得能够通过用户对滚动条118的选择和操纵而导航或“滚动”到内容的其他部分。图1b图示了按照一个或多个实现的、图1a中描述的滚动条用户界面116和滚动条118的更详细的示例。在该示例中,滚动条用户界面116包括视口(viewport)130、滚动条滑块132、滚动条轨道134和重复按钮136和138。
视口130被配置为在任何一个时间可视地显示文档内容的仅仅一部分。例如,对于100个项目的列表,视口130可以在任何一个时间显示10个项目。如本文所述,术语“显示的内容”用于指可用内容(例如,项目)的、当前显示在滚动条用户界面116的视口130中的那部分。
在该示例中,滚动条118被图示为包括滚动条滑块132和滚动条轨道134。滚动条轨道134在至少一个方向(例如,垂直或水平)上基本延伸到视口130的长度。滚动条滑块132在滚动条轨道134上的相对位置提供了当前在视口130中可见的所显示内容对文档的总可用内容的相对位置的视觉指示器。在一些情况下,可以将滚动条轨道134定义为包括位于滚动条轨道134上方和下方的滚动箭头控件。替换地,滚动箭头控件可被认为是与滚动条轨道134分开的控件。
可以选择滚动条滑块132来沿着滚动条轨道134(例如,向上向下或向左向右)移动以导航到视口130中所显示的内容的其他部分。如本文所述,导航到内容的其他部分是指调整当前在视口130中可见的所显示内容以显示该内容的不同部分。例如,用户可以选择滚动条滑块132(例如,通过用用户的手指或触控笔触摸滚动条滑块132或者通过定位鼠标的光标并点击来选择滚动条滑块132),并且沿着滚动条轨道134向下拖动滚动条滑块132,以在滚动条用户界面116的视口130中显示该内容的其他部分。
滚动条118还包括重复按钮136和138,其被定义为分别位于滚动条滑块132之上和之下的滚动条轨道134的一些部分。重复按钮136和138是可选择的以分别向上或向下翻页。例如,选择重复按钮136将滚动内容以显示视口130中当前所显示的内容之上的一页内容。类似地,选择重复按钮138将滚动内容以显示视口130中当前所显示的内容之下的一页内容。
如本文所描述的,被描述为由滚动条118实现的任何功能性可以由滚动条118的任何元件来实现,诸如滚动条滑块132、滚动条轨道134和/或重复按钮136和138。
虽然在各处将滚动条118描述为是垂直取向的滚动条,但是应当意识到,所描述的技术可以应用于任何类型的滚动条,比如水平取向的滚动条、四向的(four-way)滚动条等。另外,在一些情况下,所描述的技术可以应用于“非线性”滚动条轨道,比如弯曲或圆形滚动轨道。例如,数字智能手表显示器可以包括围绕手表显示器的圆形周界的至少一部分的弯曲式滚动轨道。
计算设备102被进一步图示为包括滚动条模块120,其被存储在计算机可读存储记忆装置(例如,存储器106)上,计算机可读存储记忆装置比如是由移动设备实现的任何合适的存储设备或电子数据存储装置。在实现中,滚动条模块120是设备操作系统的组件。
滚动条模块120是代表性功能性,用来在滚动条滑块132被选择的时候检测用于在滚动条用户界面116中显示的动态内容,并且激活用于滚动条118的动态滚动模式,以使得在滚动条滑块132仍旧被选择的同时能够导航到初始内容和动态内容。动态滚动模式在不改变滚动条滑块132的视觉位置的情况下动态地调整滚动条118的滚动比率。如本文所述,“滚动比率”是内容通过滚动条用户界面116的相对移动与滚动条滑块132的相对移动的比率。
在一些情况下,滚动条模块120基于线性关系目标位置来动态地调整滚动条118的至少一个滚动比率,这将在下面参照图5更详细地讨论。替换地或附加地,滚动条模块120可以基于基线位置来动态地调整滚动条118的至少一个滚动比率,这将在下面参照图6更详细地讨论。
尽管被图示为计算设备102的一部分,但是滚动条模块120的功能性也可以在分布式环境中、如关于图9进一步描述的、经由网络122(例如,“在云上”)远程地实现,等等。虽然网络122被图示为互联网,但网络可以采取多种多样的配置。例如,网络122可以包括广域网(WAN)、局域网(LAN)、无线网络、公用电话网、内联网等。此外,尽管示出了单个网络122,但是网络122也可以被配置为包括多个网络。
动态滚动模式
图2图示了其中滚动条模块120响应于检测到动态内容而启动动态滚动模式的系统200。通过分别使用第一、第二和第三阶段202、204和206来图示系统200。
在第一阶段202,滚动条模块120接收与文档相关联的初始内容208,并且导致在滚动条用户界面116中显示初始内容208。为了这样做,滚动条模块120在滚动条用户界面116的视口130中呈现初始内容208的一部分,并且使得能够经由对滚动条118的选择和操纵来导航到初始内容208的其他部分。
作为示例,考虑图3,其图示了在滚动条用户界面116的视口130中显示内容的示例300。在第一阶段302,初始内容208的一部分被显示在滚动条用户界面116的视口130中。在示例300中,初始内容208被图示为在项目列表中的多个项目。初始内容208的每个项目可以对应于与初始内容相关联的任何类型的项目,诸如社交网络新闻馈送中的新闻项目、图像列表中的图像、联系人列表中的联系人、文本行、文本段落等等。要意识到,把初始内容208图示为项目列表是作为示例进行的,并且初始内容208不限于项目列表,而是可以对应于来自任何类型的内容源或文件的任何类型内容。
为了讨论起见,假设与文档相关联的初始内容208包括100个不同的项目,并且滚动条用户界面116的大小被设定为在任何一个时间在视口130中显示100个项目中的10个项目或10%。因此,在示例300中,只有一部分初始内容208(例如,项目1到10)被显示在滚动条用户界面116的视口130中。滚动条118使得能滚动到初始内容208的其他部分(例如,项目11到100)。
在第二阶段204,滚动条模块120接收到滚动条118的滚动条选择210以滚动在滚动条用户界面116中显示的初始内容208。可以响应于用户手114的手指触摸并拖动滚动条滑块132而接收滚动条选择210。替换地,可以响应于诸如鼠标这样的输入设备将光标导航到滚动条滑块132上、选择(例如,按住鼠标按钮)滚动条滑块132并拖动滚动条滑块132而接收滚动条选择210。在实施例中,滚动条选择210可以对应于滚动条118的其他类型的输入,比如直接在滚动条滑块132下的触摸、按下并按住中间的鼠标按钮、映射为移动滚动条滑块132的手势、话音命令、这样的输入的组合等等。
响应于接收到滚动条选择210,滚动条模块120促使滚动条滑块132以原始滚动模式212移动和滚动初始内容208。通常,原始滚动模式212应用线性滚动比率,其导致初始内容208与滚动条滑块132沿着滚动条轨道134的移动成正比地滚动通过滚动条用户界面116。然而,滚动条模块122不限于在原始滚动模式212中应用线性滚动比率。
作为线性滚动比率的一个例子,再次转向图3,在第二阶段304,滚动条滑块132被选择并从滚动条轨道134的顶部被拖动到滚动条轨道134向下路途的大约70%的位置。作为响应,滚动条模块120滚动初始内容208,使得项目71-80现在显示在滚动条用户界面116的视口130中。因此,所显示的初始内容208的移动直接对应于滚动条118的移动。此外,滚动条118相对于滚动条轨道134总长度的定位(70%)对应于并且指示所显示的初始内容208相对于总初始内容的位置(70%)。
在第三阶段206,当滚动条118仍旧被选择时,滚动条模块120检测与文档相关联的动态内容214。动态内容214包括用于在滚动条用户界面116中显示的附加内容,比如附加内容项目。
动态内容214可以对应于初始内容208的动态修改。在一些情况下,初始内容208的动态修改可以替代地对应于初始内容208的动态移除或更改。例如,不是添加内容项目,而是动态修改可以从初始内容208中移除内容项目,或者更改初始内容208的项目的顺序。
内容的动态修改可以对应于“位置改变更新”或“少量更新”。如本文所述,少量更新对应于相对于初始内容少量地添加或移除内容(例如,将只是10个项目添加到10000个项目的列表中)。因此,少量更新可导致在滚动条轨道134上相同地显示的滑块位置。相反,位置改变更新可以对应于相对于初始内容208大量地添加或移除内容(例如,将100个项目添加到100个项目的列表中)。在过去,位置改变更新将导致滚动条轨道134上的滑块位置移动以维持滚动条滑块132与初始内容和动态内容之间的线性关系。
在一些情况下,动态内容214的添加可以由滚动条滑块132的定位和/或移动来触发。例如,向下拖动滚动条滑块132到滚动条轨道134的底部附近可以导致动态内容214被接收以供显示。替换地,动态内容214可以由预定的时间段或与加载初始内容208所需的时间成比例的时间量来触发。例如,内容的初始部分可以被加载以供最初显示,然后在过了某一时间之后,可以加载内容的附加部分以供显示。
图4图示了当滚动条滑块132被选择时检测动态内容的示例400。在示例400中,已经选择了滚动条滑块132并将其向下拖动到滚动条轨道134的大约70%的位置(也如图3的第二阶段304所示),并且作为响应,滚动条模块120滚动初始内容208以促使项目71-80被显示在滚动条用户界面116的视口130中。
在该示例中,向下滚动到初始内容208的结尾附近触发该文档提供动态内容214,在本例中其包括100个附加项目。例如,100个附加项目可以对应于针对社交网络的100个附加新闻馈送项目、针对图像搜索而返回的100个附加图像等等。在该示例中,动态内容214的100个附加项目要被显示在初始内容208的项目之下。然而,在一些情况下,动态内容214可以被添加到初始内容208之上或在初始内容208各处添加(例如,添加联系人到按字母顺序排列的联系人列表)。
要指出的是,动态内容214的添加更改了滚动条滑块132在滚动条轨道134内的位置与所显示的内容在可用内容内的位置之间的关系。例如,在检测到动态内容214之前,滚动条滑块132被定位在滚动条轨道134向下路途的大约70%处,并且滚动条用户界面116正在显示通过初始内容208的路途的大约70%的内容。因此,滚动条滑块132沿着滚动条轨道134的位置提供了在滚动条用户界面116中显示的初始内容208的位置的指示。然而,动态内容214添加100个附加项目,使得现在有70个项目位于在滚动条用户界面116中当前显示的初始内容208之上,以及有130个项目(包括当前显示的内容)在其之下(路途的大约35%)。因此,滚动条滑块132沿着滚动条轨道134的位置不再与正在滚动条用户界面116中显示的内容的位置具有线性关系。
响应于检测到动态内容214,滚动条模块120激活动态滚动模式216。动态滚动模式216使得能够在不需要释放或取消对滚动条118的选择的情况下导航到初始内容208和动态内容214两者。在实施例中,用户可以在不释放滚动条滑块132的情况下使用滚动条滑块132向上和/或向下滚动,以查看初始内容208和动态内容214的每个项目。
值得注意的是,与常规解决方案不同,滚动条模块120激活动态滚动模式216,而基本上不移动滚动条滑块132的被显示位置,并且不促使在滚动条用户界面116的视口130中显示的内容跳到新的线性关系位置。这样做对于用户来说较少混乱,并且使得用户能够使用滚动条118继续内容的导航,而不必取消对滚动条118的选择、然后在新位置重新选择滚动条118。例如,滚动条滑块132可以保持为被选择。
为了激活动态滚动模式216,滚动条模块120基于可用于显示的总内容(例如,初始内容208和动态内容214两者)而动态地调整滚动条118的至少一个滚动比率。在实施例中,激活动态滚动模式从原始滚动模式212增加和/或降低了滚动条118的滚动比率。
如本文所述,增加滚动条118的滚动比率使得滚动条模块120相对于滚动条滑块132的相应移动以更快的速率改变内容的显示。作为示例,当滚动条118的向下滚动比率是两倍的线性滚动比率时,对于100个项目的列表,将滚动条滑块132从位于滚动条轨道134向下40%处的初始位置移动到滚动条轨道134向下60%处的位置,导致在滚动条用户界面116中显示的项目跳过40个项目(对于滚动条滑块132位置中向下20%的改变的、内容40%的改变)。
相反,减小滚动条118的滚动比率导致滚动条模块120相对于滚动条滑块132的相应移动以更慢的速率改变内容的显示。作为示例,当滚动条118的向下滚动比率是线性滚动比率的一半时,对于100个项目的列表,将滚动条滑块132从位于滚动条轨道134向下40%处的初始位置移动到滚动条轨道134向下60%处的位置,导致在滚动条用户界面116中显示的项目跳过10个项目(对于滚动条滑块132位置向下20%的改变的、内容10%的改变)。
基于线性关系目标位置的滚动比率
在一个或多个实现中,滚动条模块120动态地调整滚动条118的滚动比率,使得滚动条118包括用于至少一对相反方向的不同滚动比率。如本文所述,一对相反或相对的方向对应于彼此直接相反的一对方向(例如,上和下、左和右、顺时针方向和逆时针方向/反时针方向、沿着单个滚动条轨道的、通常被配置来在相反方向上导航内容的两个方向)。因此,要指出的是,一对相反的方向是能够与可能不同但不相反的一对不同方向(例如,上和右、或者下和左)区分开的。
在一个或多个实现中,可以通过在第一方向(例如,向下)上增加滚动比率并且在与第一方向相反的第二方向(例如,向上)上减小滚动比率来配置滚动条118,使得滚动条滑块132在第一方向上的移动以相比于滚动条滑块132在第二方向上的移动单位更快的速率改变在滚动条用户界面118中显示的内容。
在一个或多个实现中,滚动条模块120可以基于线性关系目标位置来配置滚动条118的滚动比率。如果维持线性关系的话,线性关系目标位置对应于在添加动态内容214之后滚动条滑块132将位于的那个位置。
作为示例,考虑图5,其图示了按照一个或多个实现的、基于线性关系目标位置来动态地调整用于滚动条的滚动比率的示例500。
在示例500中,响应于检测到动态内容214,滚动条模块120基于动态内容216来确定滚动条118的线性关系目标位置502。在该示例中,动态内容214添加100个附加项目,使得现在有70个项目在由滚动条用户界面116显示的项目之上,以及有130个项目(包括当前在滚动条用户界面116中显示的项目)在其之下。因此,滚动条118的线性关系目标位置502在滚动条轨道134的35%处(总共200个项目中的70个项目),其在滚动条滑块132沿滚动条轨道134的当前位置之上。
在确定线性关系目标位置502之后,滚动条模块120将减小滚动条118的朝向线性关系目标位置502的第一滚动比率504,和/或增加滚动条118的离开线性关系目标位置的第二滚动比率506。在该示例中,由于线性关系目标位置502在滚动条滑块132的当前位置之上,所以滚动条模块120把滚动条118的滚动比率调整成使得向下的滚动比率相对地比向上的滚动比率更快。
滚动条模块120可以以各种各样不同的方式确定第一滚动比率504和第二滚动比率506的值。通常,滚动条模块120确定滚动比率,以促使当滚动条滑块132向上和向下移动时,滚动条滑块132的位置和所显示的内容趋向于回归直接线性关系。
一旦被激活,即使是在使用其他方法来改变在视口130中显示的内容时,滚动条118的动态滚动比率也可以修改滚动条滑块132的位置。例如,对重复按钮136或138的选择仍然可以向上或向下移动单个页面的内容,但是滚动条滑块132的被显示位置将按照新的滚动比率(例如,滚动比率504或506)来更新。
作为示例而非限制,考虑滚动条模块120将第一滚动比率504(在向上方向上)确定为线性滚动比率的一半,并且将第二滚动比率506(在向下方向上)确定为线性滚动比率的两倍。
现在,如果滚动条滑块132从滚动条轨道134上的70%的位置向下滚动到90%的位置(总变化20%),则第二滚动比率506促使所显示的内容以两倍的线性滚动比率滚动。因此,这导致显示动态内容214中的项目151-160(总共200个项目中的80个项目对应于对于滚动条滑块132的20%的移动的、在滚动条用户界面116中显示的内容的40%的改变)。
继续该示例,如果滚动条滑块132然后从90%的位置向上滚动回到70%的位置(总变化20%),则第一滚动比率504促使所显示的内容以一半的线性滚动比率滚动。因此,这导致在视口130中显示动态内容214中的项目131-140(总共200个项目中的20个项目对应于对于滚动条滑块132的20%的移动的、在滚动条用户界面116中显示的内容的10%的改变)。
通过将滚动条滑块132向下移动20%,然后向上返回到70%处的相同位置,所显示的内容的位置向下滚动60个项目的净量。值得注意的是,尽管滚动条滑块132的位置回到70%处,但是所显示的内容的位置已经从35%变为65%(总共200个项目中的130个项目)。因此,当滚动条118向下和向上移动时,在滚动条118的位置和所显示的内容之间的关系趋向于回归直接直线关系。
作为另一个例子,考虑从示例500中的初始位置起,如果滚动条滑块132从滚动条轨道134上的70%的位置向上滚动到0%的位置(总变化70%),则第一滚动比率504促使所显示的内容以一半的线性滚动比率滚动。因此,这导致在视口130中显示初始内容中的项目0-10(以一半比率进行的70%的滚动条改变导致35%的视口改变;总共200个项目的35%对应于70个项目的移动)。在这一点,由于滚动条滑块132的位置(0%)对应于所显示的内容的位置(0%),所以滚动条118可以返回到线性滚动模式。
作为另一个例子,考虑从示例500的初始位置起,如果滚动条滑块132从滚动条轨道134上的70%的位置向上滚动(并暂时释放)到10%的位置(总变化60%)。第一滚动比率504再次促使所显示的内容以一半的线性滚动比率滚动。因此,这导致在视口130中显示初始内容中的项目10-20(总共200个项目中的60个项目对应于对于滚动条滑块132的60%的移动的、在滚动条用户界面116中显示的内容的30%的改变)。还要注意,该位置对应于所显示内容的5%。现在,如果滚动条滑块132从滚动条轨道134上的10%的位置向下滚动回到70%的位置(总变化60%),则第二滚动比率率506促使所显示的内容以两倍的线性滚动比率滚动。因此,这导致在视口130中显示所要显示的内容中的项目130-140(对于滚动条滑块132的60%的移动的、滚动的120个项目)。在这一点,由于滚动条滑块132的位置(70%处)接近所显示内容的位置(65%处),所以滚动条118可以返回到线性滚动模式。“充分接近”可以被定义为在线性关系的几个像素内、线性关系位置在滚动条的不工作区(dead zone)内、在预定百分比之内等等。
在实现中,在包括受相应的滚动比率影响的轨道区域的实现中的一个或多个动态滚动比率可以仅在给定条件出现时被更新,例如当释放滚动条时(例如,从滚动条滑块132上移开用户的手指、释放正在拖动滚动条滑块132的鼠标按钮,等等)。这些条件的例子在下一段中列举。在这样的实现中,如果在不释放滚动条的情况下发生上述的从70%处到5%处再回到70%处的滚动运动,则视口将再次显示项目71…80(原始内容)并保持相同的滚动比率。
在滚动条118更新之后,诸如在对滚动条118的用户操纵、对滚动条滑块132的用户操纵或所显示的内容的其他修改导致对滚动条滑块位置的更新之后,滚动条模块120可以更新线性关系目标位置502。在一些情况下,当用户操纵滚动条118或者当视口130的位置改变时,线性关系目标位置502和动态滚动比率504和506被连续地调整。替换地,滚动条模块120可以等待更新线性关系目标位置502和/或滚动比率504和506,直至给定条件出现。作为示例,这些条件可以包括滚动条118的移动被暂停、对滚动条118的选择结束或者在用户输入之间的预定长度的暂停。一旦达到滚动条118和所显示的内容之间的直接线性关系,滚动条模块120就可以切换回原始滚动模式212,以促使滚动条118使用线性滚动比率滚动内容。
基于基线位置的滚动比率
在一个或多个实现中,滚动条模块120针对滚动条118的两个不同区域以不同的滚动比率来配置滚动条118。滚动条118的两个不同区域可以围绕基线位置被分割,所述基线位置被定义为当动态滚动模式216被激活时滚动条滑块132的位置。
作为示例,考虑图6,其图示了按照一个或多个实现的、基于基线位置来动态地调整用于滚动条的滚动比率的示例600。
在该示例中,滚动条模块120将滚动条滑块132的基线位置602确定为滚动条轨道134向下路途的70%处,其对应于当动态滚动模式216被激活时滚动条滑块132的位置。
在确定基线位置602之后,滚动条模块120对于在基线位置602之上的第一区域中的滚动条滑块132的移动以第一滚动比率604来配置滚动条118,以及对于在基线位置602之下的第二区域中的滚动条滑块132的移动以第二滚动比率606来配置滚动条118。在实施例中,这些区域对应于在动态滚动模式被激活或更新时的位于滚动条滑块132之上和之下的重复按钮区域。值得注意的是,第一滚动比率604和第二滚动比率606分别应用于在基线位置602之上或之下的区域中的在任一方向上的移动。
滚动条模块120基于基线位置602确定第一滚动比率604和第二滚动比率606,以及分别在基线位置602之上和之下的相对内容量。滚动条模块120可以计算滚动比率,以确保滚动条滑块132的0%的位置将导致内容的开头被显示在滚动条用户界面116的视口130中,并且滚动条滑块132的100%的位置将导致内容的结尾被显示在滚动条用户界面116的视口130中。在实施例中,滚动条模块120可以计算滚动比率,以确保滚动条滑块132在基线位置602处的定位将显示与当动态滚动模式被激活或更新时相同的内容。
在示例600中,由于之下存在130个内容项目和30%的滚动条剩余,所以滚动条模块120可以把向下和向上的滚动比率确定成使得滚动条滑块132的100%的位置导致项目191-200被显示在滚动条用户界面116的视口130中。在该示例中,由于当位于70%处时,在滚动条滑块132之上存在70个内容项目,所以滚动条模块120可以针对第一滚动比率604维持线性滚动比率,使得滚动条滑块132的0%的位置导致项目1-10被显示在滚动条用户界面116的视口130中。
滚动条模块120可以考虑基线位置602是非零宽度的“不工作区”,使得滚动条118在不工作区内的移动被视为无移动。替换地,滚动条模块120可以把在动态滚动模式216被激活之前存在的原始滚动比率(例如,线性滚动比率)应用于在不工作区内的滚动条移动。在实施例中,滚动条模块120可以具有两个非零宽度的不工作区,让较小的不工作区中的移动被视为无移动,而让较大的工作区中(但不在较小的工作区中)的移动应用在动态滚动模式被激活之前存在的原始滚动比率(例如,线性滚动比率)。
在一个或多个实现中,当滚动条滑块132正被移动时,滚动条模块120基于滚动条滑块132距基线位置602的距离来增加滚动条118的滚动比率。在一些情况下,滚动比率可以基于距基线位置602的距离而线性地增加。例如,当滚动条滑块132向下移动并离开基线位置602时,滚动条模块120可以促使对于10%的滚动条移动,滚动比率为线性滚动比率的两倍,然后对于接下来的10%的滚动条移动,滚动比率为线性滚动比率的四倍,等等。替换地,滚动比率的增加可以是非线性的(例如,对数的或指数的)。此外,滚动比率的增加可以是平滑的增加(例如,平滑加速)、或阶梯式的(例如,对第一范围的10个项目、对第二范围的20个项目、对第三范围的55个项目,等等)。
在一个或多个实现中,滚动条模块120可以使用预先计算的滚动距离相对所显示数据的图表来计算滚动比率。可以针对给定的期望曲线,基于滚动条轨道的长度来预先计算所述图表,以存储一个值。可以针对滑块的每个可能的位置存储一个值,或者依据较少的预先计算的值来为给定位置内插一个值。因此,预先计算的值仅需要基于可用的项目(或当轨道的长度改变时)进行缩放。例如,该图表可以包括对应于滚动比率的加速度的预定义曲线(例如,对数的或指数的)。在这种情况下,曲线下的区域可以对应于项目(例如,文本行、照片、文件等)的总数。这些预定义的曲线然后可以基于项目的数量而被容易地修改。例如,当内容项目加倍时,该曲线可以乘以因子2,反之如果内容项目被砍半,则曲线可以除以因子2。因此,滚动条模块120可以利用更少的处理能力和/或能量来使用这些曲线(或对应的预先计算的值)确定:对于给定的滚动条滑块132位置,要在视口中显示哪些项目。
与每次激活或更新动态滚动比率时计算整个曲线相比,缩放是十分有效的。通过使用单位高度曲线(例如,y从零开始,以1结束)可以存在功率节省,其中存储的值的数量和轨道中允许的移动的像素数量是相等的(或一个是另一个的倍数)。
例如,使用单位高度曲线,存储对应于滚动比率被应用之处的五个像素位置(第一=基线位置或不工作区的结尾)和线性速率,可以生成如下的表格:
表1
位置 1 2 3 4 5
滚动比率 0.0 0.25 0.50 0.75 1.00
为了确保沿那个第一滚动比率区域的100个单位的移动,项目中的对应增量可以被如下地计算:
项目的增量=100*(新索引–当前索引)。
因此,从基线移动到倒数第二个位置将是:
100*(0.75–0.00)=75个单位的内容移动。
正如可以意识到的,这仅进行了单次减法和单次乘法来为对应导航确定项目的数量。
为了对线性增加的速度进行修改,表值可以被如下地改变:
表2
位置 1 2 3 4 5
滚动比率 0.0 0.10 0.30 0.60 1.00
因此,从基线移动到倒数第二个位置将是:
100*(0.6–0.0)=60个单位的内容移动。
在一个或多个实现中,滚动条模块120响应于检测到滚动条118的移动中的暂停(例如,当用户停止操纵滚动条滑块132、释放滚动条滑块132或停止促使在视口130中显示的内容改变达预定时间段)而更新滚动条118的基线位置。当检测到暂停时,滚动条滑块132的位置成为新的基线位置。然后,滚动条模块120以与上文讨论相同的方式确定并在新基线位置之上和之下应用新滚动比率。
虽然已经相对于响应动态内容的添加而更改滚动条118的滚动比率来描述了本文所述技术,但是要意识到,这些技术也可以应用于内容的动态移除。例如,滚动条118的一个或多个滚动比率可以基于对内容的动态移除的检测而被调整,内容的动态移除比如是其中在滚动条118被选择时内容项目从可用的内容中被移除。
在一个或多个实现中,当动态滚动模式216有效时,滚动条模块120更改滚动条118的视觉外观。在图5和图6中,例如,滚动条模块120在视觉上把滚动条滑块132的颜色从灰色图案(如图3所示)更改成黑色,以向用户提供动态滚动模式216有效的视觉线索。当然,滚动条模块120可以以各种各样不同的方式来更改滚动条118的视觉外观,以指示动态滚动模式216是有效的,比如通过更改滚动条118的元素的尺寸、颜色和/或形状来指示,而无需在其对应的(一个或多个)动态滚动方向上更改滚动条118的大小。
在实施例中,对滚动条118的元素的视觉外观的更改可以对应于滚动比率。例如,滚动条轨道134的每一端的箭头的颜色强度可以对应于每个方向上的滚动比率。在另一示例中,上部重复按钮136和下部重复按钮138可以使不同的颜色、暗度、梯度、透明度或其组合被应用来指示该方向上的相对滚动比率。
作为示例,考虑图7,其图示了按照一个或多个实现的、更改滚动条118的视觉外观的示例700。在该示例中,上部重复按钮136被示出为具有指示在滚动条118的这个区域中的正常或线性滚动比率(“lx”)的图案。每个重复按钮136和138的紧邻滚动条滑块132的当前位置的部分被着色为白色,以指示滚动比率为0(不工作区),而下部重复按钮138的另外部分被着色为黑色,以指示在滚动条118的这个区域中的快速滚动比率(“4x”)。在实施例中,可以应用梯度,例如138具有从白色(靠近不工作区)到黑色(靠近下部箭头)的梯度。
示例方法
本文描述的方法被示出为成组的方框,其规定由相应的方框执行的操作,但不一定限于针对执行所述操作而显示的顺序或组合。在以下讨论的部分中,可以参考图1a的环境100和图2的系统200,对它们进行参考仅是示例。这些技术不限于由在一个设备上操作的一个实体或多个实体来执行。
图8图示了激活用于滚动条的动态滚动模式的示例方法700。在802,初始内容的一部分被显示在用户界面中。例如,滚动条模块120促使在滚动条用户界面116中显示初始内容208的一部分。
在804,显示被配置用于选择导航到初始内容的其他部分的滚动条。例如,滚动条模块120促使显示滚动条118,其被配置用于选择导航到初始内容208的其他部分。
在806,当滚动条被选择时检测用于在用户界面中显示的动态内容。例如,当滚动条118被选择时,滚动条模块120检测动态内容214。
在808,基于动态内容来动态地调整滚动条的滚动比率。例如,滚动条模块120基于动态内容214来动态地调整滚动条118的滚动比率。
示例系统和设备
图9概括地在800处图示了包括示例计算设备902的示例系统,示例计算设备902代表可以实现本文中描述的各种技术的一个或多个计算系统和/或设备。计算设备902可以例如是服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其他合适的计算设备或者计算系统。
所图示的示例计算设备902包括彼此通信地耦合的处理系统904、一个或多个计算机可读介质906和一个或多个I/O接口908。尽管未被示出,但计算设备902可以进一步包括将各种组件彼此耦合的系统总线或者其他数据和命令传递系统。系统总线可以包括不同总线结构中的任何一个或者组合,诸如存储器总线或者存储器控制器、外围总线、通用串行总线和/或使用各种各样总线架构中的任一种总线架构的处理器或者本地总线。还设想了各种各样的其他示例,诸如控制和数据线。
处理系统904代表使用硬件执行一个或多个操作的功能性。相应地,处理系统904被图示为包括可以被配置为处理器、功能块等的硬件元件910。这可以包括在硬件中实现为专用集成电路或者使用一个或多个半导体形成的其他逻辑器件。硬件元件910不受形成它们的材料或者其中采用的处理机制的限制。例如,处理器可以由(一个或者多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子地可执行的指令。
计算机可读介质906被图示为包括存储器/存储装置912。存储器/存储装置912表示与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置912可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置912可以包括固定介质(例如,RAM、ROM、固定硬驱动器等)以及可拆卸介质(例如,闪存、可拆卸硬驱动器、光盘等)。可以以各种各样其他方式来配置计算机可读介质906,如下面进一步描述的。在术语前被加上“法定”一词的地方,该术语是指可专利主题。例如,术语“法定计算机可读介质”将通过定义而排除任何非法定的计算机可读介质。
(一个或多个)输入/输出接口908代表允许用户使用各种输入/输出设备向计算设备902输入命令和信息以及还允许将信息呈现给用户和/或其他组件或者设备的功能性。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能性(例如,被配置来检测物理触摸的电容式或者其他传感器)、相机(例如,其可以采用可见波长或不可见波长——诸如红外频率——来将不涉及触摸的移动检测为手势)等。输出设备的示例包括显示设备(例如,监视器或者投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,可以以如下面进一步描述的各种各样的方式将计算设备902配置为支持用户交互。
在本文中,可以在软件、硬件元件或者程序模块的一般上下文中描述各种技术。一般性地,这样的模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等。当在本文中使用时,术语“模块”、“功能性”和“组件”通常表示软件、固件、硬件或者其组合。本文描述的技术的特征是与平台无关的,这意味着这些技术可以被实施在具有各种各样处理器的各种各样商用计算平台上。
所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上、或者跨某种形式的计算机可读介质来被传输。计算机可读介质可以包括可被计算设备902访问的各种各样的介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“通信介质”。
与仅仅信号传输、载波或者信号本身相反,“计算机可读存储介质”指的是使得能够存储信息的介质和/或设备。因此,计算机可读存储介质不包括信号承载介质,也不包括信号本身。计算机可读存储介质包括硬件,诸如易失性和非易失性、可拆卸和非可拆卸介质和/或以适合于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或者其他数据)的方法或者技术实现的存储设备。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储器技术、CD-ROM、数字多功能盘(DVD)或者其他光学存储装置、硬盘、盒式磁带、磁带、磁盘存储装置或者其他磁存储设备、或者其他适合于存储期望的信息并且可以被计算机访问的存储设备、有形介质或者制品。
“通信介质”可以指被配置为诸如经由网络向计算设备902的硬件传输指令的信号承载介质。通信介质通常可以将计算机可读指令、数据结构、程序模块或者其他数据具体化在诸如载波、数据信号或者其他传输机制之类的经调制的数据信号中。信号介质还包括任何信息递送介质。术语“经调制的数据信号”意指使其特性中的一个或多个以将信息编码在信号中这样的方式来设置或改变的信号。作为示例而非限制,通信介质包括有线介质和无线介质,有线介质诸如是有线网络或者直接连线的连接,而无线介质诸如是声学、RF、红外和其他无线介质。
如之前描述的,硬件元件910和计算机可读介质906代表可以在一些实施例中被采用来实现本文中描述的技术的至少一些方面的、以硬件形式实现的指令、模块、可编程设备逻辑和/或固定设备逻辑。硬件元件可以包括以下组件:集成电路或者片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及在硅或者其他硬件设备中的其他实现。在这个上下文中,硬件元件可以作为处理设备来操作,该处理设备执行由指令、模块和/或逻辑定义的程序任务,该指令、模块和/或逻辑由该硬件元件以及被使用来存储指令以供执行的硬件设备(例如之前描述的计算机可读存储介质)来具体化。
前述项的组合也可以被采用来实现本文中描述的各种技术和模块。相应地,软件、硬件或者包括操作系统108、滚动条模块120和其他程序模块的程序模块可以被实现为在某种形式的计算机可读存储介质上具体化的和/或通过一个或多个硬件元件910具体化的一个或多个指令和/或逻辑。计算设备902可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。相应地,将模块实现为可由计算设备902作为软件来执行的模块是可以至少部分地用硬件——例如通过使用处理系统的计算机可读存储介质和/或硬件元件910——来达成的。指令和/或功能可以是可被一个或多个制品(例如,一个或多个计算设备902和/或处理系统904)执行/操作来实现本文中描述的技术、模块和示例的。
如在图9中进一步图示的,示例系统900使得当在个人计算机(PC)、电视设备和/或移动设备上运行应用时能够实现用于无缝用户体验的普适环境。当在使用应用、玩视频游戏、观看视频等时从一个设备转换到下一个设备的情况下,服务和应用在所有三个环境中基本类似地运行以有利于共同的用户体验。
在示例系统900中,通过中央计算设备将多个设备互连。中央计算设备可以对于该多个设备来说是本地的,或者可以被定位为远离该多个设备。在一个实施例中,中央计算设备可以是通过网络、互联网或者其他数据通信链路连接到该多个设备的一个或多个服务器计算机的云。
在一个实施例中,这种互连架构使得功能性能够跨多个设备被递送,以向多个设备的用户提供共同和无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来使得能够向设备递送既是针对该设备定制、然而又是对于全部设备共同的体验。在一个实施例中,创建目标设备的类,并且为通用类的设备定制体验。设备的类可以按照设备的物理特征、用途类型或者其他共同特性来定义。
在各种实现中,计算设备902可以诸如针对计算机914、移动装置916和电视机918用途而采取各种各样的不同配置。这些配置中的每种配置包括可具有大体上不同的构造和能力的设备,并且因此可以按照不同设备类中的一个或多个类来对计算设备902进行配置。例如,计算设备902可以被实现为计算机914类的设备,包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备902还可以被实现为移动装置916类的设备,包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等的移动设备。计算设备902还可以被实现为电视机918类的设备,包括在休闲观看环境中的具有或者连接到通常较大屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。
本文中描述的技术可以被计算设备902的这各种配置支持,并且不限于本文中描述的技术的具体示例。这通过在计算设备802上包括滚动条模块120来予以图示。滚动条模块120和其他模块的功能性也可以通过使用分布式系统,诸如经由如下所述的平台922通过“云”920,来全部或部分地实现。
云920包括和/或代表用于资源924的平台922。平台922对云920的硬件(例如,服务器)和软件资源的底层功能性进行抽象。资源924可以包括当在远离计算设备902的服务器上执行计算机处理时可以被使用的应用和/或数据。资源924还可以包括通过互联网和/或通过订户网络(诸如蜂窝或者Wi-Fi网络)提供的服务。
平台922可以对用于将计算设备902与其他计算设备连接的资源和功能进行抽象。平台922还可以用来对资源的衡量(scaling)进行抽象,以便向遇到的对于经由平台922实现的资源924的需求提供对应的规模水平。因此,在互连设备实施例中,本文中描述的功能性的实现可以被分布在系统900的各处。例如,该功能性可以部分地在计算设备902上、以及经由对云920的功能性进行抽象的平台922来实现。
结论和示例实现
本文描述的示例实现包括但不限于以下一个或多个示例中的一个示例或任何组合:
一种计算机实现的方法,包括:在用户界面中显示初始内容的一部分;在用户界面中显示被配置用于选择导航到初始内容的其他部分的滚动条;在动态滚动条被选择时检测用于在用户界面中显示的动态内容;以及基于动态内容来动态调整滚动条的滚动比率。
如上所述的计算机实现的方法,其中当滚动条被选择时,动态调整滚动条的滚动比率使得能够导航到初始内容和动态内容。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:对于至少一对相反的方向,用不同的滚动比率来配置滚动条。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:把滚动条配置成使得滚动条的向下滚动比率比滚动条的向上滚动比率相对地更快。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:在第一方向上动态地增加滚动条的滚动比率。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:在至少第二方向(第二方向与第一方向相反)上动态地减小滚动条的滚动比率。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:把滚动条配置成使得滚动条的滑块在第一方向上的移动单位以比滚动条的滑块在与第一方向相反的第二方向上的移动单位更快的速率改变在用户界面中显示的内容。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:基于动态内容来确定滚动条的线性关系目标位置;当滚动离开滚动条的线性关系目标位置时,增加滚动条的滚动比率;以及当朝向滚动条的线性关系目标位置滚动时,减小滚动条的滚动比率。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:确定滚动条的基线位置;对于在基线位置之上的移动,用第一滚动比率来配置滚动条;以及对于在基线位置之下的移动,用第二滚动比率来配置滚动条,所述第一滚动比率和第二滚动比率不同。
如上所述的计算机实现的方法,还包括:响应于检测到滚动条的移动的暂停,而将滚动条的基线位置调整到滚动条的当前位置。
如上所述的计算机实现的方法,还包括:基于距基线位置的距离而增加滚动条的滚动比率。
如上所述的计算机实现的方法,其中动态调整滚动条的滚动比率还包括:在不改变滚动条的视觉位置的情况下,动态地调整滚动条的滚动比率。
存储有处理器可执行指令的一个或多个计算机可读存储介质,所述处理器可执行指令响应于被计算设备的处理系统执行而实现滚动条模块,该滚动条模块被配置为执行以下操作,包括:在用户界面中显示初始内容的一部分,并且滚动条被配置用于选择导航到初始内容的其他部分;以及响应于检测到用于在用户界面中显示的动态内容,在不改变滚动条的视觉位置的情况下,激活用于滚动条的动态滚动模式,其使得能够经由滚动条导航到动态内容。
如上所述的一个或多个计算机可读存储装置,其中所述滚动条模块还被配置为执行以下操作,包括:更改滚动条的视觉外观以指示所述动态滚动模式是有效的。
如上所述的一个或多个计算机可读存储装置,其中动态滚动模式动态地调整滚动条的滚动比率,滚动比率包括通过用户界面的内容的相对移动与滚动条的相对移动的比率。
如上所述的一个或多个计算机可读存储装置,其中所述滚动条模块被配置为在滚动条被选择时激活动态滚动模式。
如上所述的一个或多个计算机可读存储装置,其中所述滚动条模块被配置为在滚动条被选择时激活动态滚动模式,而无需可视地改变当前在用户界面中显示的初始内容的所述部分。
一种系统,包括处理系统;存储有处理器可执行指令的一个或多个计算机可读介质,所述处理器可执行指令响应于被所述处理系统执行而完成以下操作,包括:检测用于在滚动条用户界面中显示的动态内容;以及对于滚动条的至少两个不同的方向或区域,用不同的滚动比率配置在所述滚动条用户界面中显示的滚动条。
如上所述的系统,其中配置滚动条还包括:对于朝向线性关系目标位置滚动和对于滚动离开线性关系目标位置,用不同的滚动比率配置在滚动条用户界面中显示的滚动条。
如上所述的系统,其中配置滚动条还包括:对于在滚动条的基线位置之上的滚动条第一区域中的滚动和对于在滚动条的基线位置之下的滚动条第二区域中的滚动,用不同的滚动比率配置在滚动条用户界面中显示的滚动条。
虽然已经以特定于结构特征和/或方法动作的语言描述了示例实现,但是要理解,在所附权利要求中限定的实现不一定限于所描述的特定特征或动作。相反,所述特定的特征和动作是作为实现所要求保护的特征的示例形式被公开的。

Claims (20)

1.一种计算机实现的方法,包括:
在用户界面中显示初始内容的一部分以及滚动条,所述滚动条被配置用于选择导航到所述初始内容的其他部分;
检测所述初始内容的动态修改,所述初始内容的所述动态修改包括动态内容到所述初始内容的添加、内容从所述初始内容的移除或者所述初始内容的替换;以及
响应于检测到所述初始内容的所述动态修改,在所述滚动条被选择的同时,在不改变所述滚动条的滑块的视觉位置的情况下,至少部分地基于对所述初始内容的所述动态修改而动态地调整所述滚动条的滚动比率。
2.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率使得能够在所述滚动条被选择的同时导航到所述初始内容和所述动态内容,对初始内容的所述动态修改包括所述动态内容到所述初始内容的所述添加。
3.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:对于至少一对相反方向,用不同的滚动比率来配置所述滚动条。
4.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:把所述滚动条配置成使得所述滚动条的向下滚动比率比所述滚动条的向上滚动比率相对地更快。
5.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:在第一方向上动态地增加所述滚动条的滚动比率。
6.根据权利要求5所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:在至少第二方向上动态地减小所述滚动条的滚动比率,所述第二方向与所述第一方向相反。
7.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:把所述滚动条配置成使得所述滚动条的所述滑块在第一方向上的移动单位以比所述滚动条的所述滑块在与所述第一方向相反的第二方向上的移动单位更快的速率改变在所述用户界面中显示的所述内容。
8.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:
基于所述动态内容来确定所述滚动条的线性关系目标位置;
当滚动离开所述滚动条的所述线性关系目标位置时,增加所述滚动条的所述滚动比率;和
当朝向所述滚动条的所述线性关系目标位置滚动时,减小所述滚动条的所述滚动比率。
9.根据权利要求1所述的计算机实现的方法,其中动态地调整所述滚动条的所述滚动比率还包括:
确定所述滚动条的基线位置;
对于在所述基线位置之上的移动,用第一滚动比率来配置所述滚动条;和
对于在所述基线位置之下的移动,用第二滚动比率来配置所述滚动条,所述第一滚动比率和所述第二滚动比率不同。
10.根据权利要求9所述的计算机实现的方法,还包括响应于检测到所述滚动条的移动的暂停而将所述滚动条的所述基线位置调整到所述滚动条的当前位置。
11.根据权利要求9所述的计算机实现的方法,还包括基于距所述基线位置的距离来增加所述滚动条的所述滚动比率。
12.一种或多种计算机可读存储介质,其存储有处理器可执行指令,所述处理器可执行指令响应于被计算设备的处理系统执行而实现滚动条模块,所述滚动条模块被配置为执行以下操作,包括:
在用户界面中显示初始内容的一部分以及滚动条,所述滚动条被配置用于选择导航到所述初始内容的其他部分;
检测用于在所述用户界面中显示的动态内容的添加;以及
响应于检测到用于在所述用户界面中显示的所述动态内容的所述添加并且在不改变所述滚动条的滑块的视觉位置的情况下,激活用于所述滚动条的动态滚动模式,所述动态滚动模式使得能够经由所述滚动条导航到所述动态内容。
13.根据权利要求12所述的一种或多种计算机可读存储介质,其中所述滚动条模块还被配置为执行以下操作,包括:更改变所述滚动条的视觉外观以指示所述动态滚动模式是有效的。
14.根据权利要求12所述的一种或多种计算机可读存储介质,其中所述动态滚动模式动态地调整所述滚动条的滚动比率,所述滚动比率包括通过所述用户界面的内容的相对移动与所述滚动条的相对移动的比率。
15.根据权利要求12所述的一种或多种计算机可读存储介质,其中所述滚动条模块被配置为在所述滚动条被选择的同时激活所述动态滚动模式。
16.根据权利要求12所述的一种或多种计算机可读存储介质,其中所述滚动条模块被配置为在所述滚动条被选择的同时激活所述动态滚动模式,而无需可视地改变当前在所述用户界面中显示的初始内容的所述部分。
17.一种计算系统,包括:
处理系统;
一个或多个存储有处理器可执行指令的计算机可读介质,所述处理器可执行指令响应于被所述处理系统执行而完成以下操作,包括:
在用户界面中显示初始内容的一部分以及滚动条,所述滚动条被配置用于选择导航到所述初始内容的其他部分;
检测所述初始内容的动态修改,所述初始内容的所述动态修改包括动态内容到所述初始内容的添加、内容从所述初始内容的移除或者所述初始内容的替换;以及
在不改变所述滚动条的滑块的视觉位置的情况下,对于所述滚动条的至少两个不同方向或者区域用不同的滚动比率配置所述滚动条,所述配置至少部分地基于所述初始内容的所述动态修改。
18.根据权利要求17所述的计算系统,其中配置所述滚动条还包括:对于朝向线性关系目标位置滚动和对于滚动离开线性关系目标位置,用不同的滚动比率来配置在所述滚动条用户界面中显示的所述滚动条。
19.根据权利要求17所述的计算系统,其中配置所述滚动条还包括:对于在所述滚动条基线位置之上的滚动条第一区域中的滚动和对于在所述滚动条基线位置之下的滚动条第二区域中的滚动,用不同的滚动比率来配置在所述滚动条用户界面中显示的所述滚动条。
20.根据权利要求17所述的计算系统,其中配置所述滚动条还包括:在所述至少两个不同方向中的第一方向上来动态增加所述滚动条的滚动比率。
CN201580068563.7A 2014-12-15 2015-12-14 用于动态内容的滚动条 Active CN107003803B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/570985 2014-12-15
US14/570,985 US9886181B2 (en) 2014-12-15 2014-12-15 Scrollbar for dynamic content
PCT/US2015/065423 WO2016100144A1 (en) 2014-12-15 2015-12-14 Scrollbar for dynamic content

Publications (2)

Publication Number Publication Date
CN107003803A CN107003803A (zh) 2017-08-01
CN107003803B true CN107003803B (zh) 2020-03-24

Family

ID=55083486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580068563.7A Active CN107003803B (zh) 2014-12-15 2015-12-14 用于动态内容的滚动条

Country Status (5)

Country Link
US (2) US9886181B2 (zh)
EP (1) EP3234755B1 (zh)
CN (1) CN107003803B (zh)
ES (1) ES2721021T3 (zh)
WO (1) WO2016100144A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205083A (zh) * 2014-06-27 2015-12-30 国际商业机器公司 用于利用进度条中的关键点来浏览内容的方法和设备
US9886181B2 (en) * 2014-12-15 2018-02-06 Microsoft Technology Licensing, Llc Scrollbar for dynamic content
US10327036B2 (en) * 2015-11-17 2019-06-18 Rovi Guides, Inc. Systems and methods for implementing a timeline scroller to navigate media asset identifiers
US11200071B2 (en) * 2017-02-27 2021-12-14 International Business Machines Corporation Cognitive scrollbar
JP6844699B2 (ja) * 2017-06-28 2021-03-17 京セラドキュメントソリューションズ株式会社 表示装置及び表示装置の表示方法
WO2019014708A1 (en) * 2017-07-17 2019-01-24 Brian Foody SYSTEM AND METHOD FOR HANDLING INFORMATION ON A TOUCH SCREEN
GB2567864B (en) * 2017-10-27 2019-10-23 Peratech Holdco Ltd Scrolling through a plurality of entities
KR102536267B1 (ko) * 2017-12-26 2023-05-25 삼성전자주식회사 슬라이더 트랙 및 슬라이더를 표시하기 위한 전자 장치 및 그의 동작 방법
US11320981B2 (en) * 2018-01-16 2022-05-03 Citrix Systems, Inc Friendly finite scrolling for theme data pagination
US10754516B2 (en) * 2018-06-05 2020-08-25 Ge Inspection Technologies, Lp User interface
WO2020097832A1 (zh) * 2018-11-14 2020-05-22 北京字节跳动网络技术有限公司 信息流展示方法、装置、存储介质及电子设备
DK180359B1 (en) * 2019-04-15 2021-02-03 Apple Inc Accelerated scrolling and selection
CN110851058B (zh) * 2019-11-11 2021-03-30 支付宝(杭州)信息技术有限公司 一种页面虚拟滚动方法、装置及设备
CN110989907B (zh) * 2019-11-27 2021-06-15 浙江大华技术股份有限公司 一种数据显示方法、装置、电子设备及存储介质
CN111208928B (zh) * 2019-12-27 2021-05-18 广东金赋科技股份有限公司 页面滚动的控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375662A (zh) * 2010-08-20 2012-03-14 浪潮乐金数字移动通信有限公司 一种移动终端滚动条控制器及其控制方法
CN102915187A (zh) * 2011-08-03 2013-02-06 Lg电子株式会社 移动终端及其控制方法
CN102033698B (zh) * 2009-09-25 2014-05-07 苹果公司 滚动多节文档的方法和装置及多功能设备
CN103902143A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 实现滚动条滚动的方法及装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157381A (en) 1997-11-18 2000-12-05 International Business Machines Corporation Computer system, user interface component and method utilizing non-linear scroll bar
EP2749991A1 (en) * 2002-03-08 2014-07-02 Quantum Interface, Llc Electric device control apparatus
US7263380B2 (en) 2003-04-28 2007-08-28 Sony Ericsson Mobile Communications Ab Method and device for scrolling speed control
US7398477B2 (en) 2003-10-31 2008-07-08 International Business Machines Corporation Spiral scrollbar
US9384171B2 (en) * 2005-05-16 2016-07-05 Adobe Systems Incorporated Object resizing with content reflow
US8381121B2 (en) * 2006-03-01 2013-02-19 Microsoft Corporation Controlling scroll speed to improve readability
CN101078965B (zh) * 2006-05-24 2010-08-04 鸿富锦精密工业(深圳)有限公司 非线性页面定位系统及方法
US7907974B2 (en) * 2007-01-04 2011-03-15 Microsoft Corporation Scrollable computing device display
KR101296008B1 (ko) * 2007-09-07 2013-08-16 인터내셔널 비지네스 머신즈 코포레이션 스크롤바 컨트롤
US9170997B2 (en) * 2007-09-27 2015-10-27 Adobe Systems Incorporated Commenting dynamic content
US7930646B2 (en) * 2007-10-19 2011-04-19 Microsoft Corporation Dynamically updated virtual list view
US8887085B1 (en) * 2008-03-20 2014-11-11 Amazon Technologies, Inc. Dynamic content navigation
US9329744B2 (en) * 2008-05-12 2016-05-03 Adobe Systems Incorporated Segmented scroll bar
US20100131886A1 (en) * 2008-11-26 2010-05-27 Honeywell International Inc. Display system and method for generating enhanced scrollbar
US8205168B1 (en) * 2008-12-01 2012-06-19 Adobe Systems Incorporated Methods and systems for page navigation of dynamically laid-out systems
US8610673B2 (en) * 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US20100269038A1 (en) * 2009-04-17 2010-10-21 Sony Ericsson Mobile Communications Ab Variable Rate Scrolling
US8751956B2 (en) * 2009-05-27 2014-06-10 Microsoft Corporation Variable rate scrollbar
KR20100136156A (ko) 2009-06-18 2010-12-28 삼성전자주식회사 터치스크린을 구비하는 휴대 단말기의 화면 스크롤 방법 및 장치
US8677283B2 (en) 2009-10-21 2014-03-18 Microsoft Corporation Displaying lists as reacting against barriers
JP4850277B2 (ja) 2009-10-28 2012-01-11 株式会社ソニー・コンピュータエンタテインメント スクロール表示プログラム、装置および方法、スクロール表示装置を搭載した電子端末
US8812985B2 (en) 2009-10-30 2014-08-19 Motorola Mobility Llc Method and device for enhancing scrolling operations in a display device
US8812977B2 (en) 2010-08-12 2014-08-19 Salesforce.Com, Inc. Accessing multi-page data using a page index in a scrollbar
US9529866B2 (en) 2010-12-20 2016-12-27 Sybase, Inc. Efficiently handling large data sets on mobile devices
US9009620B2 (en) 2011-07-07 2015-04-14 Microsoft Technology Licensing, Llc Interactive scrollbars for unknown data size
US10185703B2 (en) * 2012-02-20 2019-01-22 Wix.Com Ltd. Web site design system integrating dynamic layout and dynamic content
CN103425297B (zh) 2012-05-21 2016-10-26 光宝电子(广州)有限公司 输入装置及其控制卷动速度的方法
US9207840B2 (en) * 2012-07-06 2015-12-08 Blackberry Limited Method and apparatus for modifying a scrollbar handle according to characteristics of displayed items being scrolled
US9377933B2 (en) * 2012-09-24 2016-06-28 Facebook, Inc. Displaying social networking system entity information via a timeline interface
KR102067991B1 (ko) 2012-10-10 2020-01-20 에스케이플래닛 주식회사 웹 페이지의 스크롤바 표시 시스템 및 방법
GB201219787D0 (en) 2012-11-02 2012-12-19 Net Comm Ltd Displaying content on a webpage
US9317188B2 (en) * 2013-03-15 2016-04-19 Arris Enterprises, Inc. Devices and methods for providing navigation images associated with adaptive bit rate video content
US20150135133A1 (en) * 2013-11-11 2015-05-14 Lenovo (Singapore) Pte. Ltd. Adjustable smooth scrolling
US9886181B2 (en) 2014-12-15 2018-02-06 Microsoft Technology Licensing, Llc Scrollbar for dynamic content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033698B (zh) * 2009-09-25 2014-05-07 苹果公司 滚动多节文档的方法和装置及多功能设备
CN102375662A (zh) * 2010-08-20 2012-03-14 浪潮乐金数字移动通信有限公司 一种移动终端滚动条控制器及其控制方法
CN102915187A (zh) * 2011-08-03 2013-02-06 Lg电子株式会社 移动终端及其控制方法
CN103902143A (zh) * 2012-12-27 2014-07-02 北京新媒传信科技有限公司 实现滚动条滚动的方法及装置

Also Published As

Publication number Publication date
EP3234755B1 (en) 2019-01-30
EP3234755A1 (en) 2017-10-25
US10466888B2 (en) 2019-11-05
ES2721021T3 (es) 2019-07-26
US20180173412A1 (en) 2018-06-21
WO2016100144A1 (en) 2016-06-23
CN107003803A (zh) 2017-08-01
US20160170629A1 (en) 2016-06-16
US9886181B2 (en) 2018-02-06
WO2016100144A8 (en) 2016-10-13

Similar Documents

Publication Publication Date Title
CN107003803B (zh) 用于动态内容的滚动条
EP2801020B1 (en) Panning animations of a displayed user interface
KR102340224B1 (ko) 멀티핑거 터치패드 제스쳐
JP2017523515A (ja) アイコンサイズ変更
US9348501B2 (en) Touch modes
US9733788B2 (en) Multi-stage cursor control
CN107209627B (zh) 对应用启动器内的表示交互的控制
US20150121194A1 (en) Web content navigation using tab switching
KR20170097161A (ko) 브라우저 디스플레이 캐스팅 기법들
US20160048319A1 (en) Gesture-based Access to a Mix View
CN103677628A (zh) 图像处理设备及其控制方法
CA2955661A1 (en) Direct access application representations
WO2019001373A1 (zh) 一种对手势命令的处理方法和装置
US20210389849A1 (en) Terminal, control method therefor, and recording medium in which program for implementing method is recorded
CN110325957B (zh) 内容作为导航
US20160313895A1 (en) Non-modal Toolbar Control

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant