Title of Invention: Content scrolling system and method
Abstract: An exemplary content scrolling system includes a display unit for displaying content, a scroll bar for scrolling the displayed content, and a processing unit for scrolling the displayed content based on a scroll input of the scroll bar. The processing unit includes a scroll amount calculating module and a content scrolling module. The scroll amount calculating module is for calculating for calculating a scroll amount mapping to the scroll input according to a particular formula. The content scrolling module is for scrolling the displayed content according to the scroll amount. Related exemplary content scrolling methods are also provided.
Detailed Description: Part general_description_paragraphs: Part 1. TECHNICAL FIELD: The present invention relates to content scrolling systems and methods, and particularly to a content scrolling system and method that achieve scrolling according to a scroll input of a scroll bar.
Part 2. GENERAL BACKGROUND: One of the most common uses of a computer system is to display electronic documents. Contemporary computer systems and programs provide flexibility in viewing a document, including jumping to hyperlinked locations in the document, zooming in and out of displayed content, allowing a user to jump to a desired page by indicating a desired page number, and so on. Furthermore, when the document contains more content than can be displayed in a viewing area, the computer systems and programs further provide scroll bars and scrolling methods to navigate through the document.
Conventional scroll bars are used for scrolling to portions of documents not shown in the viewing area. In a conventional scrolling method, in response to an instruction to perform a scroll operation, a linear content scrolling displacement process (such as that shown in FIG. 1) is applied. Thereby, a user can scroll through the content of the document. That is, in the conventional scrolling method, a scroll amount “ai” is directly proportional to a scroll input unit “k”. The scroll amount “ai” is also related to a total size of the document. When the total size of the document is small, the scroll amount “ai” is assigned with a small value; otherwise, the scroll amount “ai” is assigned with a large value. For a small document, the resulting movement (namely scroll amounts) may appear to be slow; whereas, for a large document, it may be appear to be fast. Consequently, many users find that precision scrolling is difficult with this kind of linear scrolling control.
What is needed, therefore, is a fast and effective content scrolling system and method for quickly obtaining the specific portion or content of interest to the user.
Part SUMMARY: A content scrolling system capable of quickly and efficiently displaying desired content of a document is provided. The system includes a display unit, a scroll bar, and a processing unit. The display unit is configured for displaying content of an electronic document. In an exemplary embodiment, the scroll bar is configured for receiving a user instruction to scroll the displayed content forward or backward. The processing unit includes a scroll input calculating module, a scroll amount calculating module, and a content scrolling module.
The scroll input calculating module is configured for calculating a scroll input “y” of the scroll bar in response to a scroll operation. The scroll amount calculating module is configured for calculating a scroll amount “p” mapping to the scroll length “y” according to a formula which can be selected from the group consisting of the formula:




  
    p
    =
    
      [
      
        
          ∑
          
            i
            =
            0
          
          m
        
        ⁢
        
          a
          i
        
      
      ]
    
  
  ,




wherein m is derived from the ceil function ceil(y/k), x is derived from the mod function mod(y/k), ai is derived from the function:





  
    a
    i
  
  =
  
    
      f
      ⁡
      
        (
        i
        )
      
    
    =
    
      {
      
        
          
            0
          
          
            
              
                if
                ⁢
                
                  
                
                ⁢
                i
              
              =
              0
            
          
        
        
          
            
              g
              ⁡
              
                (
                i
                )
              
            
          
          
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  i
                
                ≠
                0
              
              ,
              
                
              
              ⁢
              
                
                  wherein
                  ⁢
                  
                    
                  
                  ⁢
                  
                    g
                    ⁡
                    
                      (
                      i
                      )
                    
                  
                  ⁢
                  
                    
                  
                  ⁢
                  is
                  ⁢
                  
                    
                  
                  ⁢
                  an
                  ⁢
                  
                    
                  
                  ⁢
                  increasing
                  ⁢
                  
                    
                  
                  ⁢
                  function
                
                ;
              
            
          
        
      
    
  




and i is an integer that is less than or equal to m. The content scrolling module is configured for scrolling the displayed content according to the scroll amount “p”.

Another content scrolling system capable of quickly and efficiently obtaining desired content of a document is also provided. The system includes a display unit, a scroll bar, and a processing unit. The display unit is configured for displaying content of an electronic document. The scroll bar is configured for receiving a user instruction to scroll the displayed content forward or backward. The processing unit includes a scroll input calculating module, a scroll amount calculating module, and a content scrolling module.
The scroll input calculating module is configured for calculating a scroll input “y” of the scroll bar in response to a scroll operation. The scroll amount calculating module is configured for calculating a scroll amount “p” mapping to the scroll length “y” according to a formula selected from the group consisting of the formula:




  
    p
    =
    
      
        [
        
          
            ∑
            
              i
              =
              0
            
            m
          
          ⁢
          
            a
            i
          
        
        ]
      
      +
      
        [
        
          ceil
          ⁡
          
            (
            
              
                x
                /
                k
              
              *
              
                a
                
                  m
                  +
                  1
                
              
            
            )
          
        
        ]
      
    
  
  ,




and the formula:





  
    p
    =
    
      
        [
        
          
            ∑
            
              i
              =
              0
            
            m
          
          ⁢
          
            a
            i
          
        
        ]
      
      +
      
        [
        
          floor
          ⁡
          
            (
            
              
                x
                /
                k
              
              *
              
                a
                
                  m
                  +
                  1
                
              
            
            )
          
        
        ]
      
    
  
  ,




wherein m is derived from the floor function floor(y/k), x is derived from the mod function mod(y/k), ai is derived from the function:





  
    a
    i
  
  =
  
    
      f
      ⁡
      
        (
        i
        )
      
    
    =
    
      {
      
        
          
            0
          
          
            
              
                if
                ⁢
                
                  
                
                ⁢
                i
              
              =
              0
            
          
        
        
          
            
              g
              ⁡
              
                (
                i
                )
              
            
          
          
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  i
                
                ≠
                0
              
              ,
              
                
              
              ⁢
              
                
                  wherein
                  ⁢
                  
                    
                  
                  ⁢
                  
                    g
                    ⁡
                    
                      (
                      i
                      )
                    
                  
                  ⁢
                  
                    
                  
                  ⁢
                  is
                  ⁢
                  
                    
                  
                  ⁢
                  an
                  ⁢
                  
                    
                  
                  ⁢
                  increasing
                  ⁢
                  
                    
                  
                  ⁢
                  function
                
                ;
              
            
          
        
      
    
  




and i is an integer that is less than or equal to m. The content scrolling module is configured for scrolling the displayed content according to the scroll amount “p”.

A content scrolling method for controlling scrolling of displayed content of an electronic document is also provided. The method includes the steps of: (a) defining a scroll length “k” as a scroll input unit; (b) calculating a scroll input “y” of a scroll bar in response to a scroll operation thereon; (c) calculating a scroll amount “p” mapping to the scroll input “y” of the scroll bar according to a formula selected from the group consisting of the formula:




  
    
  
  ⁢
  
    
      p
      =
      
        
          [
          
            
              ∑
              
                i
                =
                0
              
              m
            
            ⁢
            
              a
              i
            
          
          ]
        
        +
        
          [
          
            ceil
            ⁡
            
              (
              
                
                  x
                  /
                  k
                
                *
                
                  a
                  
                    m
                    +
                    1
                  
                
                ⁢
                            
              )
            
          
          ]
        
      
    
    ,
  




and the formula:





  
    p
    =
    
      
        [
        
          
            ∑
            
              i
              =
              0
            
            m
          
          ⁢
          
            a
            i
          
        
        ]
      
      +
      
        [
        
          floor
          ⁡
          
            (
            
              
                x
                /
                k
              
              *
              
                a
                
                  m
                  +
                  1
                
              
            
            )
          
        
        ]
      
    
  
  ,




wherein m is derived from the floor function floor(y/k), x is derived from the mod function mod(y/k), ai is derived from the function:





  
    a
    i
  
  =
  
    
      f
      ⁡
      
        (
        i
        )
      
    
    =
    
      {
      
        
          
            0
          
          
            
              
                if
                ⁢
                
                  
                
                ⁢
                i
              
              =
              0
            
          
        
        
          
            
              g
              ⁡
              
                (
                i
                )
              
            
          
          
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  i
                
                ≠
                0
              
              ,
              
                
              
              ⁢
              
                
                  wherein
                  ⁢
                  
                    
                  
                  ⁢
                  
                    g
                    ⁡
                    
                      (
                      i
                      )
                    
                  
                  ⁢
                  
                    
                  
                  ⁢
                  is
                  ⁢
                  
                    
                  
                  ⁢
                  an
                  ⁢
                  
                    
                  
                  ⁢
                  increasing
                  ⁢
                  
                    
                  
                  ⁢
                  function
                
                ;
              
            
          
        
      
    
  




and i is an integer that is less than or equal to m; and (d) scrolling the displayed content according to the scroll amount “p”.

Other novel features and advantages will be drawn from the following detailed description with reference to the attached drawings, in which:
Part DETAILED DESCRIPTION OF EMBODIMENTS: Referring to FIGS. 2, 4, 5, and 7, these show aspects of a content scrolling system in accordance with a preferred embodiment of the present invention. The content scrolling system is capable of scrolling an exact increment of a displayed document in a viewing area and quickly providing a display of specific desired portions of the document. The term “document” is used broadly herein to refer to electronic files of all types including, but not limited to, text-based files, audio files, video files, image files, etc.
The content scrolling system defines “k” as a scroll input unit and “ai” as a scroll amount that is directly proportional to the scroll input unit “k”. In addition, the content scrolling system includes certain conventional content scrolling technologies, which may include, but are not limited to, the technologies described above in relation to the discussion of the general background. Advantageously, in the present embodiment, the content scrolling system assigns “ai” with a value non-linearly proportional to “k”, such as the value “ai” shown in FIG. 4 or the value “ai” shown in FIG. 7. This contrasts with conventional content scrolling technologies, in which “ai” is assigned a value linearly proportional to “k”, such as the value “ai” shown in FIG. 1. Thereby, the content scrolling system obtains a non-linear scroll amount “p” mapping to a scroll input “y” (see below) based on the scroll amount “ai”.
The content scrolling system 10 mainly includes a scroll bar 12, a display unit 13, and a processing unit 11. The display unit 13 is configured for displaying the content of a document. The scroll bar 12 is configured for receiving a user instruction to scroll the displayed content forward or backward, or up or down, or left or right, as the case may be. In the following description, for the sake of simplicity and unless the context indicates otherwise, it will be assumed that the user instruction is for the displayed content to be scrolled forward or backward. The processing unit 11 includes a scroll input calculating module 111, a scroll amount calculating module 112, and a content scrolling module 113.
The scroll input calculating module 111 is configured for calculating a scroll input “y” of the scroll bar 12 in response to a user operation on the scroll bar. The scroll input “y” may be greater than or equal to the scroll input unit “k” (such as the scroll input “y” shown in FIGS. 4, 7), or may be less than the scroll input unit “k” (such as the scroll input “y” shown in FIG. 5).
The scroll amount calculating module 112 is configured for calculating the scroll amount “p” mapping to the scroll input “y” of the scroll bar 12.
In a preferred embodiment, the scroll amount calculating module 112 calculates the scroll amount “p” according to the following formula 1:




  
    
      
        
          p
          =
          
            
              [
              
                
                  ∑
                  
                    i
                    =
                    0
                  
                  m
                
                ⁢
                
                  a
                  i
                
              
              ]
            
            +
            
              [
              
                ceil
                ⁡
                
                  (
                  
                    
                      x
                      /
                      k
                    
                    *
                    
                      a
                      
                        m
                        +
                        1
                      
                    
                    ⁢
                                     
                  )
                
              
              ]
            
          
        
        ,
      
    
    
      
        formula
        ⁢
        
          
        
        ⁢
        1
      
    
  




wherein m is derived from a floor function floor(y/k), x is derived from a mod function mod(y/k), ai is derived from the following function:





  
    a
    i
  
  =
  
    
      f
      ⁡
      
        (
        i
        )
      
    
    =
    
      {
      
        
          
            0
          
          
            if
          
          
            
              i
              =
              0
            
          
        
        
          
            
              g
              ⁡
              
                (
                i
                )
              
            
          
          
            if
          
          
            
              
                
                  
                    i
                    ≠
                    
                      0
                      ⁢
                      
                        
                      
                      ⁢
                      wherein
                      ⁢
                      
                        
                      
                      ⁢
                      
                        g
                        ⁡
                        
                          (
                          i
                          )
                        
                      
                      ⁢
                      
                        
                      
                      ⁢
                      is
                      ⁢
                      
                        
                          
                        
                        ⁢
                        
                          
                        
                      
                      ⁢
                      an
                      ⁢
                      
                        
                          
                        
                        ⁢
                        
                          
                        
                      
                      ⁢
                      increaseing
                      ⁢
                      
                        
                      
                      ⁢
                      function
                    
                  
                
              
              
                
                  
                    
                      
                        
                          which
                          ⁢
                          
                            
                          
                          ⁢
                          can
                          ⁢
                          
                            
                          
                          ⁢
                          be
                          ⁢
                          
                            
                          
                          ⁢
                          an
                          ⁢
                          
                            
                          
                          ⁢
                          arithmetic
                          ⁢
                          
                            
                          
                          ⁢
                          progression
                          ⁢
                          
                            
                          
                          ⁢
                          increasing
                          ⁢
                          
                            
                          
                          ⁢
                          function
                        
                      
                    
                    
                      
                        
                          or
                          ⁢
                          
                            
                          
                          ⁢
                          a
                          ⁢
                          
                            
                          
                          ⁢
                          geometric
                          ⁢
                          
                            
                          
                          ⁢
                          progression
                          ⁢
                          
                            
                          
                          ⁢
                          increasing
                          ⁢
                          
                            
                          
                          ⁢
                          function
                        
                      
                    
                  
                
              
            
          
        
      
    
  




and i is an integer that is less than or equal to m. Typically, when m is “0”, that is, when y is less than k, formula 1 is reduced to:

p=(ceil(x/k*ai)).

In addition, in another typical case, the ceil function ceil(x/k*am+1) in formula 1 may be replaced by a floor function floor(x/k*am+1).
In another preferred embodiment, the scroll amount calculating module 112 calculates the scroll amount “p” according to the following formula 2:




  
    
      
        
          p
          =
          
            [
            
              
                ∑
                
                  i
                  =
                  0
                
                m
              
              ⁢
              
                a
                i
              
            
            ]
          
        
        ,
      
    
    
      
        formula
        ⁢
        
          
        
        ⁢
        2
      
    
  




wherein m is derived from a ceil function ceil(y/k), ai is derived from the function same as that described above in relation to formula 1, and i is an integer which is less than or equal to m.

The content scrolling module 113 is configured for scrolling the displayed content forward or backward according to the scroll amount “p”. Thus the content of a displayed document is scrolled to a desired location in a viewing area of the display unit 13.
FIG. 3 is a flowchart of a first preferred content scrolling method, which is performed by utilizing the system of FIG. 2. In step S31, the scroll bar 12 is actuated with the scroll operation being either forward or backward. In step S32, the scroll input calculating module 111 calculates the scroll input “y” of the scroll bar 12 of the scroll operation. In step S33, the scroll amount calculating module 112 calculates m and x according to the floor function floor(y/k) and the mod function mod(y/k) respectively. In step S34, the scroll amount calculating module 112 iteratively calculates ai according to the corresponding function described in formula 1 above, wherein i is in the range from 0 to m. In step S35, the scroll amount calculating module 112 calculates the scroll amount p according to formula 1 above.
In step S36, the content scrolling module 122 determines a direction of the scroll operation. If the direction is forward, in step S41, the content scrolling module 112 moves the displayed content forward according to the scroll amount p. If the direction is backward, in step S42, the content scrolling module 112 moves the displayed content backward according to the scroll amount p.
FIG. 6 is a flowchart of a second preferred content scrolling method, which is performed by utilizing the system of FIG. 2. In step S61, the scroll bar 12 is actuated with the scroll operation being either forward or backward. In step S62, the scroll input calculating module 121 calculates the scroll input “y” of the scroll bar 12 of the scroll operation. In step S63, the scroll amount calculating module 112 calculates m according to the ceil function ceil(y/k). In step S64, the scroll amount calculating module 112 iteratively calculates ai according to the corresponding function described in formula 1 above, wherein i is in the range from 0 to m. In step S65, the scroll amount calculating module 112 calculates the scroll amount p according to formula 2 above.
In step S66, the content scrolling module 113 determines the direction of the scroll operation. If the direction is forward, in step S67, the content scrolling module 112 moves the displayed content forward according to the scroll amount p. If the direction is backward, in step S68, the content scrolling module 112 moves the displayed content backward according to the scroll amount p.
Although the present invention has been specifically described on the basis of preferred embodiments including preferred methods, the invention is not to be construed as being limited thereto. Various changes or modifications may be made to the embodiments including the methods without departing from the scope and spirit of the invention.


{'bibliographic_information': "{'country': 'US', 'doc-number': '11752921', 'kind': 'B2', 'date': '20070523', 'extension': '828', 'invention_title': 'Content scrolling system and method'}", 'source_file': './grant/2011/ipg110118.xml', 'source_data': 'USPTO-Grant'}