WO2013049162A1 - Smooth zooming in web applications - Google Patents

Smooth zooming in web applications Download PDF

Info

Publication number
WO2013049162A1
WO2013049162A1 PCT/US2012/057280 US2012057280W WO2013049162A1 WO 2013049162 A1 WO2013049162 A1 WO 2013049162A1 US 2012057280 W US2012057280 W US 2012057280W WO 2013049162 A1 WO2013049162 A1 WO 2013049162A1
Authority
WO
WIPO (PCT)
Prior art keywords
size
scaling
resizable
container element
scalable
Prior art date
Application number
PCT/US2012/057280
Other languages
French (fr)
Inventor
Ryan James Fioravanti
Cedomir Segulja
Original Assignee
Google Inc.
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 Google Inc. filed Critical Google Inc.
Publication of WO2013049162A1 publication Critical patent/WO2013049162A1/en

Links

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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation

Definitions

  • the present invention relates in general to a graphical user interface and in particular to smooth zooming of display elements in web applications.
  • the Internet is a global system of interconnected computer networks.
  • the WWW is a client-server model that includes web servers that provide access to documents via Hypertext Transfer Protocol (HTTP). Documents on the web servers are identified using Uniform Resource Locators (URLs). The documents and other content provided by web servers can be accessed by clients by way of a web browser application.
  • HTTP Hypertext Transfer Protocol
  • URLs Uniform Resource Locators
  • the documents and other content can include web pages or web applications created using Hyper Text Markup Language (HTML) or other markup languages.
  • HTML Hyper Text Markup Language
  • Some web browsers are capable of rendering web pages or web applications in a certain way using one or more Cascading Style Sheets (CSS) referenced by the web pages or web applications.
  • CSS Cascading Style Sheets
  • Web browsers commonly implement a global zoom function.
  • This function affects all of the elements on a web page simultaneously and proportionally, for example, by scaling all of the text and images on a web page by a scaling factor.
  • One way of implementing this is to provide a menu button or command that allows the user to select a global scaling factor.
  • Another way of implementing this, on touch screen devices is by scaling the web page according to the relative motion of two touch points. Because the screen size of the many touch screen devices, such as mobile phones or tablet computers, is limited, global zoom functions are commonly used.
  • the system includes a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element when rendered; a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements; a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input, redefine the scalable element based at least in part on the scaling input, and selectively redefine the resizable container element based at least in part on the display position of the resizable container element with respect to the viewable area of the rendered content.
  • FIG. 1 Another aspect of the disclosed embodiments is a system for smooth zooming in web applications that includes a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element having a container size attribute and a scalable element having a scaling attribute, wherein the scalable element is defined to be located at least partially within the resizable container element when rendered; a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements; a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input requesting scaling of the scalable element, redefine the scaling attribute of the scalable element based at least in part on the scaling input, calculate an updated container size attribute for the resizable container element, and set the container size attribute to the updated container size attribute if the re
  • Another aspect of the disclosed embodiments is a method for smooth zooming in web applications that includes receiving a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element; executing a rendering function that calculates a display position for each of the plurality of display elements; producing rendered content, the rendered content based at least in part on the display position for each of the plurality of display elements; receiving a scaling input; redefining the size of the scalable element according to the scaling input; and selectively redefining the size of the resizable container element based on the display position of the resizable container element with respect to the viewable area of the rendered content.
  • FIG. 1 is block diagram showing an exemplary environment for operation of a system for smooth zooming in web applications
  • FIG. 2 is an illustration showing rendered content within a web browser that is displayed on the display screen of a client device
  • FIGS. 3A-3C are illustrations showing resizing and scaling of a resizable container element and a scalable element
  • FIG. 4 is a flow chart showing an exemplary process for smooth zooming in web applications.
  • FIG. 5 is a block diagram showing an exemplary computer system in which embodiments described herein may be implemented.
  • Some web browsers such as mobile web browsers executing on mobile devices
  • Resizing one or more elements of a web page can cause the browser to execute a rendering function, where the web browser recalculates the positions and geometries of the elements displayed within the web page to account for the updated size and/or position of the one or more resized elements. This is sometimes referred to as a "browser reflow.”
  • a browser reflow On some computing devices, excessive browser reflows can lead to unacceptable performance (e.g., a slower/less-smooth zooming process).
  • the systems and methods described herein avoid unnecessary browser reflows by selectively resizing the container element(s) in which the element being scaled is located.
  • FIG. 1 is a diagram showing smooth zooming in web applications implemented in an exemplary environment. As shown in FIG. 1, a client 10 and a web server 12 are in
  • Each of client 10 and web server 12 may be a single system or multiple systems. These systems can be one or more computing devices executing software operable or programmed to perform the functionality described herein with respect to client 10 and web server 12.
  • Network 18 can allow communication between client 10 and web server 12 in any suitable manner.
  • client 10 can include a client application, which in one example is a web browser 20.
  • Web browser 20 can be operable to request objects, including documents, images, data files, or any other kind of data computer-readable form, from web server 12.
  • client 10 can send a request to web server 12 in the form of a URL, and web server 12 can transmit to client 10 a web page (i.e., HTML and/or additional code defining a web page) associated with that URL, along with any content associated with the web page, in response to the request.
  • Web browser 20 may include a rendering component 22 and a display component 24, which will be explained herein.
  • the client application need not be a web browser, but can be any application including a rendering component 22 and a display component 24.
  • client 10 can be operable to receive, assemble, interpret and/or execute, and render a structured document 30.
  • Structured document 30 can be transmitted to client 10 by web server 12 via network 18.
  • Structured document 30 can describe, for example, a plurality of display elements that, when rendered by web browser 20, form the visible portions of a web page (as well as non-visible portions of a web page that define layout or formatting).
  • Structured document 30 can be a Hypertext Markup Language (HTML) document that complies with the Document Object Model (DOM) specification.
  • HTML Hypertext Markup Language
  • DOM Document Object Model
  • Structured document 30 can be assembled from multiple documents, such as by using HTML iframes.
  • Other languages and technologies can be utilized by or form part of structured document 30, such as Extensible Markup Language (XML), Extensible Hypertext Markup Language (XHTML), Cascading Style Sheets (CSS), Java, JavaScript, and the like.
  • Structured document 30 can include a scaling component 32 in the form of executable code elements that are adapted to be interpreted and executed by web browser 20.
  • Scaling component 32 can be provided in the form of JavaScript functions and CSS.
  • Scaling component 32 can be operable to modify the appearance of portions of a web page defined by structured document 30, based on a scaling input that requests scaling of a portion of structured document 30.
  • client 10 can be in the form of a computing device, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, and the like.
  • Client 10 can include a display screen 11.
  • Display screen 11 can be a touch-sensitive display screen that is operable to display images in response to a video signal and is also operable to output a touch signal that indicates a position that is touched by a user. Examples of technologies that can be employed to output the touch signal include resistive touch sensing, surface acoustic wave touch sensing, and capacitive touch sensing.
  • Other input devices can be used in lieu of a touch sensitive display screen, such as a keyboard or a mouse.
  • a user interface 26 of web browser 20 and a content display area 28 of web browser 20 can be displayed on display screen 11.
  • User interface 26 can be omitted, or at times may not be visible on display screen 11.
  • Content display area 28 can occupy some or all of display screen 11.
  • Structured document 30 can be accepted by rendering component 22 of web browser 20 as an input, and rendering component 22 produces rendered content 40 as an output.
  • Rendered content 40 is the content that is displayed by web browser 20 or other application when structured document 30 is rendered. At least a portion of rendered content 40 can be displayed on display screen 11.
  • Rendering component 22 defines rendered content 40 by executing a rendering function.
  • structured document 30 describes a plurality of display elements.
  • the rendering function calculates a display position for each of the plurality of display elements. Based on the display positions that are calculated by the rendering function, rendering component 22 produces rendered content 40.
  • each of the plurality of display elements is located at its respective display position.
  • One example of a rendering function is the function by which conventional web browsers perform a "browser reflow.”
  • Web browser 20 can support functions that allow the user to change the view of rendered content 40 with respect to content display area 28 on a global basis. These functions can include pan and zoom functions that move or zoom the entirety of rendered content 40. As a result, less than the entire rendered content 40 may be viewable at once.
  • display component 24 accepts rendered content 40, the global pan and view states of web browser 20, and the size of content display area 28 as input. Based on these inputs, display component 24 calculates a viewable area of the rendered area of rendered content 40, and outputs the viewable area of the rendered content to content display area 28, coextensive content display area 28.
  • the example of rendered content 40 that is shown in FIG. 2 is a web-based email program that displays multiple messages of a single conversation at one, each enclosed within its own container element 42.
  • the body of each message can include one or more content elements 44.
  • Container elements 42 and content elements 44 can each be a single element or a collection of elements.
  • HTML ⁇ div> elements can be used as container elements 42.
  • content elements 44 can be one or more text characters, raster images, vector images, video, or other elements.
  • Rendered content 40 can also include one or more resizable container elements
  • Resizable container elements 46 can be equivalent to container elements 42, but can be resized by scaling component 32. As an example, this can be implemented by causing scaling component 32 to modify a container size attribute, such as the height and/or width attributes of all of part of resizable container elements 46, either using HTML attributes or CSS properties and functions.
  • Scalable elements 48 are equivalent to content elements 44, but can be resized by scaling component 32. This can be implemented by causing scaling component 32 to modify a scaling attribute, such as the height and/or width of scalable elements 48, using the scale3d function of CSS in one implementation.
  • Scaling component 32 can be operable to receive the scaling input requesting scaling of scalable element 48.
  • Scaling component 32 can redefine scalable element 48 based on the scaling input.
  • scaling component 32 can modify the scaling attribute of scalable element 48 according to the scaling input in a manner that does not change the positions of other elements of the rendered content.
  • scaling component 32 redefines the resizable container element by calculating an updated container size attribute for resizable container element 46, and setting the current container size attribute to the updated container size attribute if resizable container element 46 will be at least partially positioned within the viewable area of rendered content 40 at the updated container size when rendered.
  • this determination can be implemented using JavaScript functions that are incorporated in the structured document as part of scaling component 32, and which are able to access information from web browser 20, such as the size of rendered content 40, the size and position of the viewable area of rendered content 40, and the positions of the display elements that are represented in rendered content 40.
  • Container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 are all examples of the display elements that can be defined by structured document 30. Definitions of any number of container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 can be provided in structured document 30. Container elements 42 and content elements 44 can optionally be resizable and scalable in the same manner as described with respect to resizable container elements 46 and scalable elements 48, but are not described as such herein for the sake of clarity.
  • container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 can be implemented in other contexts.
  • container elements 42 and resizable container element 46 could be cells in a table (visible or invisible) and content elements 44 and scalable element 48 could be images.
  • FIG. 3A two container elements 42 are positioned at least partially within the viewable area of rendered content 40, as represented by content display area 28.
  • Resizable container element 46 and scalable element 48 are positioned entirely within the viewable area of rendered content 40. Part of rendered content 40 is not viewable because rendered content 40 is located partially outside of content display area 28.
  • scalable element 48 and the size of resizable container element 46 have changed with respect to rendered content 40, container elements 42, and the viewable area of rendered content 40.
  • the size of scalable element 48 has changed as a function of the scaling input.
  • the size of resizable container element 46 has changed in correspondence to the size of scalable element 48 such that sufficient space is provided within resizable container element 46 for scalable element 48.
  • scalable element 48 remains located entirely within resizable container element 46.
  • This change in size has not been applied to rendered content 40 as a whole.
  • the size of container elements 42 has not changed with respect to the viewable area of rendered content 40.
  • the position of at least one of container elements 42 has changed.
  • the change in size of resizable container element 46 has triggered the rendering function of rendering component 22, the positions of the display elements described by structured document 30 have changed, and, as a result, the positions of at least some of the elements of rendered content 40 have changed.
  • resizable container element 46 has changed such that no portions of resizable container element 46 are viewable, as resizable container element 46 is now positioned entirely outside of (and in this example surrounding) the boundary of content display area 28. As one example, this can be the case when scalable element 48 occupies the entirety of content display area 28.
  • Scaling component 32 does not redefine the size of resizable container element
  • scaling component 32 determines whether resizable container element 46 would be positioned at least partially within the viewable area of rendered content 40 if its size were changed. Scaling component 32 selectively redefines the size of resizable container element 46 based on the display position of resizable container element 46 with respect to the viewable area of rendered content 40.
  • scaling component 32 can selectively resize resizable container element 46 by determining whether resizable container element 46 will be located within the viewable area of rendered content 40 if resizable container element 46 is resized to completely contain scalable element 48.
  • Scaling component 32 resizes resizable container element 46 if it will be located at least partially within the viewable area of rendered content 40, and scaling component 32 maintains the size of resizable container element 46 if it will not be located within the viewable area of rendered content 40. This determination can be made by calculating an updated position and size for resizable container element 46 and comparing the results of this calculation to the boundary of content display area 28.
  • resizable container element 46 would not be positioned at least partially within the viewable area of rendered content 40 if its size were changed, the size of resizable container element 46 is not changed. Because the size of resizable container element 46 is not changed, the positions of other elements of rendered content 40 are not changed, and the rendering function is not triggered. Stated another way, the rendering function is triggered if resizable container element 46 is resized, and the rendering function is not triggered if resizable container element 46 is not resized.
  • scalable element 48 is resized without regard to the size of resizable container element 46, and is allowed to exceed the boundaries of resizable container element 46. Scalable element 48 remains, however, located at least partially within resizable container element 46.
  • step 101 structured document 30 is received by client 10.
  • structured document 30 is received by client 10 from web server 12 over network 18.
  • rendering component 40 accepts structured document 30 as an input, and executes the rendering function, which calculates a display position for each of the plurality of display elements that are described by structured document 30. Using the results of the rendering function, in step 103, rendering component 22 produces rendered content 40 as an output.
  • step 104 at least a portion of rendered content 40, i.e., a viewable area of rendered content 40, is displayed on display screen 11 in content display area 28.
  • step 105 the scaling input is received from the user.
  • the scaling input relates to scalable element 48, which forms part of rendered content 40.
  • scalable element 48 which forms part of rendered content 40.
  • display screen 11 is a touch sensitive display screen
  • the relative motion of two touch points that are sensed by display screen 11 can be used as the scaling input.
  • a command issued by the user from a user interface device, such as a keyboard or mouse can be used as the scaling input. This can be in the form of a key press or clicking on a menu option, such a menu option that appears in a context sensitive menu that is associated with scalable element 48.
  • scalable element 48 is resized by scaling component 32 using the scaling input.
  • a percentage change in the distance between the two touch points can be applied to scalable element 48 as a scaling factor, such that scalable element 48 resizes in proportion to the relative motion of the touch points.
  • Scaling scalable element 48 does not itself trigger execution of the rendering function of rendering component 22.
  • step 107 scaling component 32 calculates an updated size attribute for resizable container element 46.
  • the scaling component determines whether resizable container element 46, if resized according to the updated size attribute, would be viewable, i.e., disposed within the viewable portion of rendered content 40 as defined by content display area 28. If scaling component 32 determines that resizable container element 46, if resized, would not be viewable, resizable container element 46 is not resized and execution of the rendering function is not performed. Instead the process returns to step 103, where the rendered content is output by rendering component 22.
  • step 109 resizable container element 46 is resized by redefining the size of resizable container element 46 in structured document 30. This necessitates execution of the rendering function, and the process returns to step 102, where the rendering function is executed, causing the size of resizable container element to be changed in rendered content 40. The process continues until the user stops manipulating structured document 30.
  • the term "computer” means any device of any kind that is capable of processing a signal or other information. Examples of computers include, without limitation, an application-specific integrated circuit (ASIC) a programmable logic array (PLA), a microcontroller, a digital logic controller, a digital signal processor (DSP), a desktop computer, a laptop computer, a tablet computer, and a mobile device such as a mobile telephone.
  • a computer does not necessarily include memory or a processor.
  • a computer may include software in the form of programmable code, micro code, and or firmware or other hardware embedded logic.
  • a computer may include multiple processors which operate in parallel.
  • FIG. 3 An example of a device that can be used as a basis for implementing the systems and functionality described herein is a conventional computer 1000, as shown in FIG. 3.
  • Conventional computer 1000 can be any suitable conventional computer.
  • conventional computer 1000 can include a processor such as a central processing unit (CPU) 1010 and memory such as RAM 1020 and ROM 1030.
  • a storage device 1040 can be provided in the form of any suitable computer readable medium, such as a hard disk drive.
  • One or more input devices 1050 such as a keyboard and mouse, a touch screen interface, etc., allow user input to be provided to CPU 1010.
  • a display 1060 such as a liquid crystal display (LCD) or a cathode-ray tube (CRT), allows output to be presented to the user.
  • a communications interface 1070 is any manner of wired or wireless means of communication that is operable to send and receive data or other signals using network 18.
  • CPU 1010, RAM 1020, ROM 1030, storage device 1040, input devices 1050, display 1060 and communications interface 1070 are all connected to one another by a bus 1080.
  • Client 10 and web server 12 can be implemented in the form of a single system or in the form of separate systems. Moreover, each of client 10 and web server 12 can be implemented in the form of multiple computers, processors, or other systems working in concert. As an example, the functions of web server 12 can be distributed among a plurality of conventional computers, such as computer 1000, each of which is capable of performing some or all of the functions of web server 12.
  • components of the systems described herein can communicate with one another by networks such as network 18.
  • the communications functions described herein can be accomplished using any kind of wired and/or wireless computing network or communications means capable of transmitting data or signals, such as a wireless and/or wired computing network allowing communication via, for example, an 802.11 ("Wi-Fi") protocol, cellular data protocol (e.g., EDGE, CDMA, TDMA, GSM, LTE), and the like.
  • Suitable examples include the internet, which is a packet-switched network, a local area network (LAN), wide area network (WAN), virtual private network (VPN), or any other means of transferring data.
  • LAN local area network
  • WAN wide area network
  • VPN virtual private network
  • a single network or multiple networks that are connected to one another can be used. It is specifically contemplated that multiple networks of varying types can be connected together and utilized to facilitate the communications contemplated by the systems and elements described in this disclosure.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A system for smooth zooming in web applications includes a structured document defining a plurality of display elements including a scalable element defined to be located at least partially within a resizable container element when rendered. A rendering component is operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements. A display component is operable to output a viewable area of the rendered content, and a scaling is component operable to receive a scaling input, redefine the scalable element based at least in part on the scaling input, and selectively redefine the resizable container element based at least in part on the display position of the resizable container element with respect to the viewable area of the rendered content.

Description

SMOOTH ZOOMING IN WEB APPLICATIONS
TECHNICAL FIELD
[0001] The present invention relates in general to a graphical user interface and in particular to smooth zooming of display elements in web applications.
BACKGROUND
[0002] The Internet is a global system of interconnected computer networks. The
Internet carries various information resources and services, including the World Wide Web (WWW). The WWW is a client-server model that includes web servers that provide access to documents via Hypertext Transfer Protocol (HTTP). Documents on the web servers are identified using Uniform Resource Locators (URLs). The documents and other content provided by web servers can be accessed by clients by way of a web browser application.
[0003] The documents and other content can include web pages or web applications created using Hyper Text Markup Language (HTML) or other markup languages. Some web browsers are capable of rendering web pages or web applications in a certain way using one or more Cascading Style Sheets (CSS) referenced by the web pages or web applications.
[0004] Web browsers commonly implement a global zoom function. This function affects all of the elements on a web page simultaneously and proportionally, for example, by scaling all of the text and images on a web page by a scaling factor. One way of implementing this is to provide a menu button or command that allows the user to select a global scaling factor. Another way of implementing this, on touch screen devices, is by scaling the web page according to the relative motion of two touch points. Because the screen size of the many touch screen devices, such as mobile phones or tablet computers, is limited, global zoom functions are commonly used.
SUMMARY
[0005] Disclosed herein are embodiments of systems and methods for smooth zooming in web applications.
[0006] One aspect of the disclosed embodiments is a system for smooth zooming in web applications. The system includes a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element when rendered; a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements; a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input, redefine the scalable element based at least in part on the scaling input, and selectively redefine the resizable container element based at least in part on the display position of the resizable container element with respect to the viewable area of the rendered content.
[0007] Another aspect of the disclosed embodiments is a system for smooth zooming in web applications that includes a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element having a container size attribute and a scalable element having a scaling attribute, wherein the scalable element is defined to be located at least partially within the resizable container element when rendered; a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements; a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input requesting scaling of the scalable element, redefine the scaling attribute of the scalable element based at least in part on the scaling input, calculate an updated container size attribute for the resizable container element, and set the container size attribute to the updated container size attribute if the resizable container element is at least partially positioned within the viewable area of the rendered content at the updated container size.
[0008] Another aspect of the disclosed embodiments is a method for smooth zooming in web applications that includes receiving a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element; executing a rendering function that calculates a display position for each of the plurality of display elements; producing rendered content, the rendered content based at least in part on the display position for each of the plurality of display elements; receiving a scaling input; redefining the size of the scalable element according to the scaling input; and selectively redefining the size of the resizable container element based on the display position of the resizable container element with respect to the viewable area of the rendered content.
[0009] Variations in these and other embodiments of the invention are described hereinafter. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The description herein makes reference to the accompanying drawings wherein like reference numerals refer to like parts throughout the several views, and wherein:
[0011] FIG. 1 is block diagram showing an exemplary environment for operation of a system for smooth zooming in web applications;
[0012] FIG. 2 is an illustration showing rendered content within a web browser that is displayed on the display screen of a client device;
[0013] FIGS. 3A-3C are illustrations showing resizing and scaling of a resizable container element and a scalable element;
[0014] FIG. 4 is a flow chart showing an exemplary process for smooth zooming in web applications; and
[0015] FIG. 5 is a block diagram showing an exemplary computer system in which embodiments described herein may be implemented.
DETAILED DESCRIPTION
[0016] Some web browsers, such as mobile web browsers executing on mobile devices
(e.g., a smartphone), provide a global zoom function, but do not provide a zoom function that operates on a single on-screen element (such as a picture). Resizing one or more elements of a web page (e.g., using JavaScript functions) can cause the browser to execute a rendering function, where the web browser recalculates the positions and geometries of the elements displayed within the web page to account for the updated size and/or position of the one or more resized elements. This is sometimes referred to as a "browser reflow." On some computing devices, excessive browser reflows can lead to unacceptable performance (e.g., a slower/less-smooth zooming process). The systems and methods described herein avoid unnecessary browser reflows by selectively resizing the container element(s) in which the element being scaled is located.
[0017] FIG. 1 is a diagram showing smooth zooming in web applications implemented in an exemplary environment. As shown in FIG. 1, a client 10 and a web server 12 are in
communication via a network 18. Each of client 10 and web server 12 may be a single system or multiple systems. These systems can be one or more computing devices executing software operable or programmed to perform the functionality described herein with respect to client 10 and web server 12. Network 18 can allow communication between client 10 and web server 12 in any suitable manner.
[0018] As shown in FIG. 1, client 10 can include a client application, which in one example is a web browser 20. Web browser 20 can be operable to request objects, including documents, images, data files, or any other kind of data computer-readable form, from web server 12. For example, client 10 can send a request to web server 12 in the form of a URL, and web server 12 can transmit to client 10 a web page (i.e., HTML and/or additional code defining a web page) associated with that URL, along with any content associated with the web page, in response to the request. Web browser 20 may include a rendering component 22 and a display component 24, which will be explained herein. In other examples, the client application need not be a web browser, but can be any application including a rendering component 22 and a display component 24.
[0019] In some embodiments, client 10 can be operable to receive, assemble, interpret and/or execute, and render a structured document 30. Structured document 30 can be transmitted to client 10 by web server 12 via network 18. Structured document 30 can describe, for example, a plurality of display elements that, when rendered by web browser 20, form the visible portions of a web page (as well as non-visible portions of a web page that define layout or formatting). Structured document 30 can be a Hypertext Markup Language (HTML) document that complies with the Document Object Model (DOM) specification. Structured document 30 can be assembled from multiple documents, such as by using HTML iframes. Other languages and technologies can be utilized by or form part of structured document 30, such as Extensible Markup Language (XML), Extensible Hypertext Markup Language (XHTML), Cascading Style Sheets (CSS), Java, JavaScript, and the like.
[0020] Structured document 30 can include a scaling component 32 in the form of executable code elements that are adapted to be interpreted and executed by web browser 20. Scaling component 32 can be provided in the form of JavaScript functions and CSS. Scaling component 32 can be operable to modify the appearance of portions of a web page defined by structured document 30, based on a scaling input that requests scaling of a portion of structured document 30.
[0021] As shown in FIG. 2, client 10 can be in the form of a computing device, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, and the like. Client 10 can include a display screen 11. Display screen 11 can be a touch-sensitive display screen that is operable to display images in response to a video signal and is also operable to output a touch signal that indicates a position that is touched by a user. Examples of technologies that can be employed to output the touch signal include resistive touch sensing, surface acoustic wave touch sensing, and capacitive touch sensing. Other input devices can be used in lieu of a touch sensitive display screen, such as a keyboard or a mouse.
[0022] In some embodiments, a user interface 26 of web browser 20 and a content display area 28 of web browser 20 can be displayed on display screen 11. User interface 26 can be omitted, or at times may not be visible on display screen 11. Content display area 28 can occupy some or all of display screen 11.
[0023] Structured document 30 can be accepted by rendering component 22 of web browser 20 as an input, and rendering component 22 produces rendered content 40 as an output. Rendered content 40 is the content that is displayed by web browser 20 or other application when structured document 30 is rendered. At least a portion of rendered content 40 can be displayed on display screen 11.
[0024] Rendering component 22 defines rendered content 40 by executing a rendering function. As previously noted, structured document 30 describes a plurality of display elements. The rendering function calculates a display position for each of the plurality of display elements. Based on the display positions that are calculated by the rendering function, rendering component 22 produces rendered content 40. In rendered content 40, each of the plurality of display elements is located at its respective display position. One example of a rendering function is the function by which conventional web browsers perform a "browser reflow."
[0025] Web browser 20 can support functions that allow the user to change the view of rendered content 40 with respect to content display area 28 on a global basis. These functions can include pan and zoom functions that move or zoom the entirety of rendered content 40. As a result, less than the entire rendered content 40 may be viewable at once. In some embodiments, display component 24 accepts rendered content 40, the global pan and view states of web browser 20, and the size of content display area 28 as input. Based on these inputs, display component 24 calculates a viewable area of the rendered area of rendered content 40, and outputs the viewable area of the rendered content to content display area 28, coextensive content display area 28.
[0026] The example of rendered content 40 that is shown in FIG. 2 is a web-based email program that displays multiple messages of a single conversation at one, each enclosed within its own container element 42. The body of each message can include one or more content elements 44. Container elements 42 and content elements 44 can each be a single element or a collection of elements. As an example, HTML <div> elements can be used as container elements 42. As an example, content elements 44 can be one or more text characters, raster images, vector images, video, or other elements.
[0027] Rendered content 40 can also include one or more resizable container elements
46 that each contains one or more scalable elements 48. Resizable container elements 46 can be equivalent to container elements 42, but can be resized by scaling component 32. As an example, this can be implemented by causing scaling component 32 to modify a container size attribute, such as the height and/or width attributes of all of part of resizable container elements 46, either using HTML attributes or CSS properties and functions. Scalable elements 48 are equivalent to content elements 44, but can be resized by scaling component 32. This can be implemented by causing scaling component 32 to modify a scaling attribute, such as the height and/or width of scalable elements 48, using the scale3d function of CSS in one implementation.
[0028] Scaling component 32 can be operable to receive the scaling input requesting scaling of scalable element 48. Scaling component 32 can redefine scalable element 48 based on the scaling input. As one example, scaling component 32 can modify the scaling attribute of scalable element 48 according to the scaling input in a manner that does not change the positions of other elements of the rendered content. In some embodiments, scaling component 32 redefines the resizable container element by calculating an updated container size attribute for resizable container element 46, and setting the current container size attribute to the updated container size attribute if resizable container element 46 will be at least partially positioned within the viewable area of rendered content 40 at the updated container size when rendered. As an example, this determination can be implemented using JavaScript functions that are incorporated in the structured document as part of scaling component 32, and which are able to access information from web browser 20, such as the size of rendered content 40, the size and position of the viewable area of rendered content 40, and the positions of the display elements that are represented in rendered content 40.
[0029] Container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 are all examples of the display elements that can be defined by structured document 30. Definitions of any number of container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 can be provided in structured document 30. Container elements 42 and content elements 44 can optionally be resizable and scalable in the same manner as described with respect to resizable container elements 46 and scalable elements 48, but are not described as such herein for the sake of clarity.
[0030] While the description above and FIG. 2 use a web-based email system as an example, container elements 42, content elements 44, resizable container elements 46, and scalable elements 48 can be implemented in other contexts. As an example, in an image gallery application (such as a web-based image gallery application), container elements 42 and resizable container element 46 could be cells in a table (visible or invisible) and content elements 44 and scalable element 48 could be images.
[0031] Operation of an example of scaling component 32 will now be explained with reference to FIGS. 3A-3C. [0032] In FIG. 3A, two container elements 42 are positioned at least partially within the viewable area of rendered content 40, as represented by content display area 28. Resizable container element 46 and scalable element 48 are positioned entirely within the viewable area of rendered content 40. Part of rendered content 40 is not viewable because rendered content 40 is located partially outside of content display area 28.
[0033] In FIG. 3B, as a result of a scaling input from a user, the size of scalable element
48 and the size of resizable container element 46 have changed with respect to rendered content 40, container elements 42, and the viewable area of rendered content 40. The size of scalable element 48 has changed as a function of the scaling input. The size of resizable container element 46 has changed in correspondence to the size of scalable element 48 such that sufficient space is provided within resizable container element 46 for scalable element 48. Thus, scalable element 48 remains located entirely within resizable container element 46.
[0034] This change in size has not been applied to rendered content 40 as a whole. The size of container elements 42 has not changed with respect to the viewable area of rendered content 40. The position of at least one of container elements 42, however, has changed. The change in size of resizable container element 46 has triggered the rendering function of rendering component 22, the positions of the display elements described by structured document 30 have changed, and, as a result, the positions of at least some of the elements of rendered content 40 have changed.
[0035] In FIG. 3C, as a result of a scaling input from a user, the size of scalable element
48 and the size of resizable container element 46 have changed such that no portions of resizable container element 46 are viewable, as resizable container element 46 is now positioned entirely outside of (and in this example surrounding) the boundary of content display area 28. As one example, this can be the case when scalable element 48 occupies the entirety of content display area 28.
[0036] Scaling component 32 does not redefine the size of resizable container element
46 when resizable container element 46 is not viewable. Rather, in response to a scaling input when resizable container element 46 is not viewable, scaling component 32 determines whether resizable container element 46 would be positioned at least partially within the viewable area of rendered content 40 if its size were changed. Scaling component 32 selectively redefines the size of resizable container element 46 based on the display position of resizable container element 46 with respect to the viewable area of rendered content 40.
[0037] As an example, scaling component 32 can selectively resize resizable container element 46 by determining whether resizable container element 46 will be located within the viewable area of rendered content 40 if resizable container element 46 is resized to completely contain scalable element 48. Scaling component 32 resizes resizable container element 46 if it will be located at least partially within the viewable area of rendered content 40, and scaling component 32 maintains the size of resizable container element 46 if it will not be located within the viewable area of rendered content 40. This determination can be made by calculating an updated position and size for resizable container element 46 and comparing the results of this calculation to the boundary of content display area 28.
[0038] If resizable container element 46 would not be positioned at least partially within the viewable area of rendered content 40 if its size were changed, the size of resizable container element 46 is not changed. Because the size of resizable container element 46 is not changed, the positions of other elements of rendered content 40 are not changed, and the rendering function is not triggered. Stated another way, the rendering function is triggered if resizable container element 46 is resized, and the rendering function is not triggered if resizable container element 46 is not resized.
[0039] As long as resizable container element 46 remains non-viewable, scalable element 48 is resized without regard to the size of resizable container element 46, and is allowed to exceed the boundaries of resizable container element 46. Scalable element 48 remains, however, located at least partially within resizable container element 46.
[0040] One example of a process for smooth zooming in applications, as shown in FIG.
4, can be implemented by client 20 using structured document 30.
[0041] In step 101, structured document 30 is received by client 10. In one example, structured document 30 is received by client 10 from web server 12 over network 18.
[0042] In step 102, rendering component 40 accepts structured document 30 as an input, and executes the rendering function, which calculates a display position for each of the plurality of display elements that are described by structured document 30. Using the results of the rendering function, in step 103, rendering component 22 produces rendered content 40 as an output.
[0043] In step 104, at least a portion of rendered content 40, i.e., a viewable area of rendered content 40, is displayed on display screen 11 in content display area 28.
[0044] In step 105, the scaling input is received from the user. The scaling input relates to scalable element 48, which forms part of rendered content 40. As one example, in
embodiments where display screen 11 is a touch sensitive display screen, the relative motion of two touch points that are sensed by display screen 11 can be used as the scaling input. As another example, a command issued by the user from a user interface device, such as a keyboard or mouse, can be used as the scaling input. This can be in the form of a key press or clicking on a menu option, such a menu option that appears in a context sensitive menu that is associated with scalable element 48.
[0045] In step 106, scalable element 48 is resized by scaling component 32 using the scaling input. Returning to the example of two touch points as a scaling input, a percentage change in the distance between the two touch points can be applied to scalable element 48 as a scaling factor, such that scalable element 48 resizes in proportion to the relative motion of the touch points. Scaling scalable element 48 does not itself trigger execution of the rendering function of rendering component 22.
[0046] In step 107, scaling component 32 calculates an updated size attribute for resizable container element 46. In step 107, the scaling component determines whether resizable container element 46, if resized according to the updated size attribute, would be viewable, i.e., disposed within the viewable portion of rendered content 40 as defined by content display area 28. If scaling component 32 determines that resizable container element 46, if resized, would not be viewable, resizable container element 46 is not resized and execution of the rendering function is not performed. Instead the process returns to step 103, where the rendered content is output by rendering component 22. If scaling component 32 determines that resizable container element 46, if resized, would be viewable, the process proceeds to step 109, where resizable container element 46 is resized by redefining the size of resizable container element 46 in structured document 30. This necessitates execution of the rendering function, and the process returns to step 102, where the rendering function is executed, causing the size of resizable container element to be changed in rendered content 40. The process continues until the user stops manipulating structured document 30.
[0047] As used herein, the term "computer" means any device of any kind that is capable of processing a signal or other information. Examples of computers include, without limitation, an application-specific integrated circuit (ASIC) a programmable logic array (PLA), a microcontroller, a digital logic controller, a digital signal processor (DSP), a desktop computer, a laptop computer, a tablet computer, and a mobile device such as a mobile telephone. A computer does not necessarily include memory or a processor. A computer may include software in the form of programmable code, micro code, and or firmware or other hardware embedded logic. A computer may include multiple processors which operate in parallel. The processing performed by a computer may be distributed among multiple separate devices, and the term computer encompasses all such devices when configured to perform in accordance with the disclosed embodiments. [0048] An example of a device that can be used as a basis for implementing the systems and functionality described herein is a conventional computer 1000, as shown in FIG. 3.
Conventional computer 1000 can be any suitable conventional computer. As an example, conventional computer 1000 can include a processor such as a central processing unit (CPU) 1010 and memory such as RAM 1020 and ROM 1030. A storage device 1040 can be provided in the form of any suitable computer readable medium, such as a hard disk drive. One or more input devices 1050, such as a keyboard and mouse, a touch screen interface, etc., allow user input to be provided to CPU 1010. A display 1060, such as a liquid crystal display (LCD) or a cathode-ray tube (CRT), allows output to be presented to the user. A communications interface 1070 is any manner of wired or wireless means of communication that is operable to send and receive data or other signals using network 18. CPU 1010, RAM 1020, ROM 1030, storage device 1040, input devices 1050, display 1060 and communications interface 1070 are all connected to one another by a bus 1080.
[0049] Client 10 and web server 12 can be implemented in the form of a single system or in the form of separate systems. Moreover, each of client 10 and web server 12 can be implemented in the form of multiple computers, processors, or other systems working in concert. As an example, the functions of web server 12 can be distributed among a plurality of conventional computers, such as computer 1000, each of which is capable of performing some or all of the functions of web server 12.
[0050] In some embodiments, components of the systems described herein can communicate with one another by networks such as network 18. The communications functions described herein can be accomplished using any kind of wired and/or wireless computing network or communications means capable of transmitting data or signals, such as a wireless and/or wired computing network allowing communication via, for example, an 802.11 ("Wi-Fi") protocol, cellular data protocol (e.g., EDGE, CDMA, TDMA, GSM, LTE), and the like. Suitable examples include the internet, which is a packet-switched network, a local area network (LAN), wide area network (WAN), virtual private network (VPN), or any other means of transferring data. A single network or multiple networks that are connected to one another can be used. It is specifically contemplated that multiple networks of varying types can be connected together and utilized to facilitate the communications contemplated by the systems and elements described in this disclosure.
[0051] While this disclosure includes certain embodiments, it is to be understood that the disclosure is not to be limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims, which scope is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures as is permitted under the law.

Claims

What is claimed is:
1. A system for smooth zooming in web applications, comprising:
a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element when rendered;
a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements;
a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input, redefine the scalable element based at least in part on the scaling input, and selectively redefine the resizable container element based at least in part on the display position of the resizable container element, with respect to the viewable area of the rendered content.
2. The system of claim 1, wherein the scaling component selectively redefines the resizable container element by determining whether the resizable container element will be located within the viewable area if the size of the resizable container element is changed so that the resizable container element completely contains the scalable element, redefining the size of the resizable container element if it will be located within the viewable area, and maintaining the size of the resizable container element if it will not be located within the viewable area.
3. The system of claim 2, wherein the rendering function is triggered if the size of the resizable container element is redefined, and the rendering function is not triggered if the size of the resizable container element is not redefined.
4. The system of claim 1 or claim 2, wherein the size of the scalable element with respect to the rendered content changes when the scaling component redefines the scalable element according to the scaling input.
5. The system of claim 1 or claim 2, wherein the size of the resizable container element with respect to the rendered content changes when the scaling component redefines the resizable container element.
6. A system for smooth zooming in web applications, comprising:
a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element having a container size attribute and a scalable element having a scaling attribute, wherein the scalable element is defined to be located at least partially within the resizable container element when rendered;
a rendering component operable to receive the structured document as an input, execute a rendering function that calculates a display position for each of the plurality of display elements, and define rendered content based at least in part on the display position for each of the plurality of display elements;
a display component operable to output a viewable area of the rendered content; and a scaling component operable to receive a scaling input requesting scaling of the scalable element, redefine the scaling attribute of the scalable element based at least in part on the scaling input, calculate an updated container size attribute for the resizable container element, and set the container size attribute to the updated container size attribute if the resizable container element is at least partially positioned within the viewable area of the rendered content at the updated container size.
7. The system of claim 6, wherein redefining the scaling attribute of the scalable element according to the scaling input is operable to change the size of the scalable element with respect to the rendered content.
8. The system of claim 7, wherein modifying the scaling attribute of the scalable element according to the scaling input does not trigger the rendering function of the rendering component.
9. The system of claim 6 or claim 7, wherein setting the container size attribute to the updated container size attribute changes the size of the container with respect to the structured document.
10. The system of claim 9, wherein setting the container size attribute to the updated container size attribute triggers the rendering function of the rendering component.
11. The system of claim 6 or claim 7, wherein the structured document is an HTML document.
12. The system of claim 6 or claim 7, wherein the scaling component is executed based on scaling function code that is included as part of the structured document.
13. The system of claim 6 or claim 7, wherein the scalable element is a raster image, a vector image, or one or more text characters.
14. A method, comprising
receiving a structured document defining a plurality of display elements, the plurality of display elements including a resizable container element and a scalable element defined to be located at least partially within the resizable container element;
executing a rendering function that calculates a display position for each of the plurality of display elements;
producing rendered content, the rendered content based at least in part on the display position for each of the plurality of display elements;
outputting a viewable area of the rendered content;
receiving a scaling input;
redefining the size of the scalable element according to the scaling input; and selectively redefining the size of the resizable container element based on the display position of the resizable container element with respect to the viewable area of the rendered content.
15. The method of claim 14, wherein the step of selectively resizing the resizable container element includes determining whether the resizable container element will be located within the viewable area if resized to completely contain the scalable element, resizing the resizable container element if it will be located within the viewable area, and maintaining the size of the resizable container element if it will not be located within the viewable area.
16. The method of claim 15, wherein the rendering function is triggered if the size of the resizable container element is redefined, and the rendering function is not triggered if the size of the resizable container element is not redefined.
17. The method of claim 14 or claim 15, wherein the size of the scalable element with respect to the rendered content changes when the scaling component redefines the size of the scalable element according to the scaling input.
18. The method of claim 14 or claim 15, wherein the size of the resizable container element with respect to the rendered content changes when the scaling component redefines the size of the resizable container element.
PCT/US2012/057280 2011-09-26 2012-09-26 Smooth zooming in web applications WO2013049162A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/245,421 US8307279B1 (en) 2011-09-26 2011-09-26 Smooth zooming in web applications
US13/245,421 2011-09-26

Publications (1)

Publication Number Publication Date
WO2013049162A1 true WO2013049162A1 (en) 2013-04-04

Family

ID=47023088

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/057280 WO2013049162A1 (en) 2011-09-26 2012-09-26 Smooth zooming in web applications

Country Status (2)

Country Link
US (1) US8307279B1 (en)
WO (1) WO2013049162A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015103256A1 (en) * 2013-12-30 2015-07-09 AI Squared Moving content based on pointer cursor movements
WO2016176149A1 (en) 2015-04-30 2016-11-03 Intuit Inc. Rendering graphical assets natively on multiple screens of electronic devices
EP3168742A1 (en) * 2015-11-12 2017-05-17 Xiaomi Inc. Method and device for drawing gui

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
WO2011130281A1 (en) * 2010-04-12 2011-10-20 Google Inc. Zooming in a web browser
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US20120304113A1 (en) * 2011-05-27 2012-11-29 Patten Michael J Gesture-based content-object zooming
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
EP2850610B1 (en) * 2012-05-18 2020-11-04 BlackBerry Limited Systems and methods to manage zooming
KR20140097820A (en) * 2013-01-30 2014-08-07 삼성전자주식회사 Method and apparatus for adjusting attribute of specific object in web page in electronic device
US9916287B2 (en) * 2013-06-17 2018-03-13 Tencent Technology (Shenzhen) Company Limited Method, device and system for zooming font in web page file, and storage medium
USD757787S1 (en) * 2013-09-03 2016-05-31 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
US20160203108A1 (en) * 2013-09-06 2016-07-14 Smugmug, Inc. Display scaling application
US20150116284A1 (en) * 2013-10-24 2015-04-30 Livescribe Inc. Smart Zooming of Content Captured by a Smart Pen
US10387551B2 (en) * 2013-12-13 2019-08-20 Freedom Scientific, Inc. Techniques for programmatic magnification of visible content elements of markup language documents
USD757788S1 (en) * 2013-12-23 2016-05-31 Symantec Corporation Display screen or a portion thereof with transitional graphical user interface
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
US10248630B2 (en) * 2014-12-22 2019-04-02 Microsoft Technology Licensing, Llc Dynamic adjustment of select elements of a document
US10437918B1 (en) 2015-10-07 2019-10-08 Google Llc Progressive image rendering using pan and zoom
CN108647076B (en) * 2018-05-14 2020-07-24 阿里巴巴集团控股有限公司 Page processing method, device and equipment
CN109062471B (en) * 2018-07-10 2020-11-10 广州视源电子科技股份有限公司 Mobile display method, device, equipment and medium for page elements
USD944825S1 (en) * 2019-09-24 2022-03-01 Beijing Xiaomi Mobile Software Co., Ltd. Mobile phone with graphical user interface
US11099819B1 (en) * 2021-03-12 2021-08-24 Dovel Technologies, Llc Methods and systems for operationalizing artificial intelligence models using web-based user interfaces

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060103667A1 (en) * 2004-10-28 2006-05-18 Universal-Ad. Ltd. Method, system and computer readable code for automatic reize of product oriented advertisements
WO2009053833A1 (en) * 2007-10-25 2009-04-30 Nokia Corp. Apparatus and method for zooming objects on a display
US20110035701A1 (en) * 2009-08-10 2011-02-10 Williams Harel M Focal point zoom

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682487A (en) 1994-06-10 1997-10-28 Bay Networks, Inc. Method and apparatus providing resizable views
US6034689A (en) 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
DE19727957A1 (en) 1996-07-02 1998-01-08 Miyachi Technos Kk Scanning laser marker
US5854624A (en) 1996-09-12 1998-12-29 Innovative Device Technologies, Inc. Pocket-sized user interface for internet browser terminals and the like
JP3575957B2 (en) 1997-07-28 2004-10-13 シャープ株式会社 Region extraction method for videophone and videophone terminal
US6211856B1 (en) 1998-04-17 2001-04-03 Sung M. Choi Graphical user interface touch screen with an auto zoom feature
US6456305B1 (en) * 1999-03-18 2002-09-24 Microsoft Corporation Method and system for automatically fitting a graphical display of objects to the dimensions of a display window
US6732152B2 (en) * 1999-04-09 2004-05-04 Amazingmail, Inc. Methods and apparatus for generation and distribution of surface mail objects
US7050079B1 (en) 2000-01-04 2006-05-23 International Business Machines Corporation System and method for dynamically generating viewable graphics
US6549217B1 (en) 2000-03-23 2003-04-15 Koninklijke Philips Electronics N.V. System and method for computer system management using bookmarks
FI20000735A (en) 2000-03-30 2001-10-01 Nokia Corp A multimodal method for browsing graphical information displayed on a mobile device
US7228283B1 (en) 2000-04-05 2007-06-05 David Hornstein Aesthetic profile collection
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US7120868B2 (en) * 2002-05-30 2006-10-10 Microsoft Corp. System and method for adaptive document layout via manifold content
US7219309B2 (en) 2001-05-02 2007-05-15 Bitstream Inc. Innovations for the display of web pages
JP2004533641A (en) 2001-05-02 2004-11-04 ビットストリーム インコーポレーティッド Method, system, and program for generating and displaying sub-pixel optimized font bitmaps using non-linear color balance
JP2003067120A (en) 2001-08-24 2003-03-07 Pioneer Electronic Corp Using method of numeric keypad
IES20030064A2 (en) 2002-02-04 2003-08-06 Mobileaware Technologies Ltd Document transformation
US7075512B1 (en) 2002-02-07 2006-07-11 Palmsource, Inc. Method and system for navigating a display screen for locating a desired item of information
US7193609B2 (en) 2002-03-19 2007-03-20 America Online, Inc. Constraining display motion in display navigation
US7107525B2 (en) 2002-07-23 2006-09-12 Xerox Corporation Method for constraint-based document generation
US7340673B2 (en) 2002-08-29 2008-03-04 Vistaprint Technologies Limited System and method for browser document editing
US7272258B2 (en) * 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
JP4005961B2 (en) * 2003-09-05 2007-11-14 松下電器産業株式会社 Media receiver
US7594194B2 (en) 2003-09-24 2009-09-22 Nokia Corporation Portrayal of navigation objects
CA2537100A1 (en) 2003-09-24 2005-03-31 Nokia Corporation Improved presentation of large objects on small displays
US7290006B2 (en) 2003-09-30 2007-10-30 Microsoft Corporation Document representation for scalable structure
US7509584B2 (en) 2004-05-28 2009-03-24 Sap Ag Dynamic ECMAScript class loading
US7437220B2 (en) 2004-08-17 2008-10-14 Arinc, Inc. Systems and methods for crew interaction and coordination using portable electronic data storage and display devices
WO2006043664A1 (en) 2004-10-22 2006-04-27 Access Co., Ltd. Parameter setting and storage method
JP4356594B2 (en) 2004-11-22 2009-11-04 ソニー株式会社 Display device, display method, display program, and recording medium on which display program is recorded
US7516402B2 (en) * 2005-02-28 2009-04-07 Nokia Corporation Presentation of large objects on small displays
US7434174B2 (en) 2005-03-04 2008-10-07 Microsoft Corporation Method and system for zooming in and out of paginated content
US20060227153A1 (en) 2005-04-08 2006-10-12 Picsel Research Limited System and method for dynamically zooming and rearranging display items
US7487447B1 (en) * 2005-05-25 2009-02-03 Google Inc. Web page zoom feature
US7712018B2 (en) * 2005-12-12 2010-05-04 Microsoft Corporation Selecting and formatting warped text
US7861165B2 (en) * 2005-12-15 2010-12-28 Xerox Corporation Printing apparatus and method
US7705861B2 (en) * 2006-01-19 2010-04-27 Microsoft Corporation Snap to element analytical tool
US8423900B2 (en) * 2009-08-20 2013-04-16 Xerox Corporation Object based adaptive document resizing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060103667A1 (en) * 2004-10-28 2006-05-18 Universal-Ad. Ltd. Method, system and computer readable code for automatic reize of product oriented advertisements
WO2009053833A1 (en) * 2007-10-25 2009-04-30 Nokia Corp. Apparatus and method for zooming objects on a display
US20110035701A1 (en) * 2009-08-10 2011-02-10 Williams Harel M Focal point zoom

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015103256A1 (en) * 2013-12-30 2015-07-09 AI Squared Moving content based on pointer cursor movements
US9588946B2 (en) 2013-12-30 2017-03-07 Al Squared Panning a content area of a markup language document based on movements of a cursor of a pointing device
WO2016176149A1 (en) 2015-04-30 2016-11-03 Intuit Inc. Rendering graphical assets natively on multiple screens of electronic devices
EP3289479A4 (en) * 2015-04-30 2018-09-19 Intuit Inc. Rendering graphical assets natively on multiple screens of electronic devices
AU2016256364B2 (en) * 2015-04-30 2019-07-18 Intuit Inc. Rendering graphical assets natively on multiple screens of electronic devices
US10410606B2 (en) 2015-04-30 2019-09-10 Intuit Inc. Rendering graphical assets on electronic devices
EP3168742A1 (en) * 2015-11-12 2017-05-17 Xiaomi Inc. Method and device for drawing gui
RU2659731C2 (en) * 2015-11-12 2018-07-03 Сяоми Инк. Method and device for drawing a graphical user interface
US10108323B2 (en) 2015-11-12 2018-10-23 Xiaomi Inc. Method and device for drawing a graphical user interface

Also Published As

Publication number Publication date
US8307279B1 (en) 2012-11-06

Similar Documents

Publication Publication Date Title
US8307279B1 (en) Smooth zooming in web applications
US8645849B2 (en) Method and apparatus for providing portioned web pages in a graphical user interface
JP5816670B2 (en) Method and device for selecting and displaying a region of interest in an electronic document
US20140289597A1 (en) Method and device for displaying preview screen of hyperlink
CN107015751B (en) Optimal display and scaling of objects and text in a document
US10740540B2 (en) Techniques for programmatic magnification of visible content elements of markup language documents
JP5235671B2 (en) Terminal device, content display method, and content display program
TW201443670A (en) Virtual library providing content accessibility irrespective of content format and type
JP6255495B2 (en) Method and apparatus for displaying browser resource, and computer readable storage medium
WO2015154666A1 (en) Method for displaying webpage fragment on desktop and system for capturing webpage fragment to desktop for display
JP2014149860A (en) Information display method of portable multifunctional terminal, information display system using the same, and portable multifunctional terminal
US20150269271A1 (en) Method And Apparatus For Displaying A Webpage
TW201409340A (en) System and method for moving graphics
KR20140086979A (en) Method of internet browser-based remote user interface virtual mouse cursor positioning
JP5088343B2 (en) Information browsing device
KR102223554B1 (en) Terminal, method for contrlling thereof and recording medium on which a program for implemeting the method
JP2014164736A (en) Web page browsing device and program
JP6068246B2 (en) Image forming apparatus
JP2015106397A (en) Web content display device, operation method of web content display device, and computer program
KR20110028041A (en) Mobile terminal with touch screen and webpage drag method thereof
WO2016107871A1 (en) Adaptive method for device independent web page presentation
JP6577731B2 (en) Terminal device, display control method, and program
JP2016062133A (en) Portable terminal device, browsing control method, and browsing control program
JP6206141B2 (en) Information processing apparatus, information processing method, and information processing program
JP2018045467A (en) Information processing device and control method and program thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12773167

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12773167

Country of ref document: EP

Kind code of ref document: A1