Difference between revisions of "Javascript API"

Jump to navigation Jump to search
43 bytes removed ,  14:22, 18 October 2017
Line 33: Line 33:


==== Table of content ====
==== Table of content ====
<blockquote>function TableOfContents () {</blockquote><blockquote>this.getSections = function() {</blockquote><blockquote>/*</blockquote><blockquote>- return an array of section objects</blockquote><blockquote>- in case there there is no table of content, return an empty array</blockquote><blockquote>*/</blockquote><blockquote>}</blockquote><blockquote><br>
<code>function TableOfContents () {</code>
</blockquote><blockquote>this.scrollToSection = function(index: number) {</blockquote><blockquote>/*</blockquote><blockquote>- scroll to a section with index in array returned by this.getSections</blockquote><blockquote>- perform change to the page so that the section become available for reading, such as expanding the collapsed section</blockquote><blockquote>*/</blockquote><blockquote>}</blockquote><blockquote><br>
 
</blockquote><blockquote>// OPTIONAL</blockquote><blockquote>this.visibleSectionIndexes = function() {</blockquote><blockquote>/*</blockquote><blockquote>- return an array of visible section's indexes</blockquote><blockquote>- in case there there is no table of content, return an empty array</blockquote><blockquote>*/</blockquote><blockquote>}</blockquote><blockquote><br>
    <code>this.getSections = function() {</code>
</blockquote><blockquote>// OPTIONAL</blockquote><blockquote>this.startVisibleSectionCallBack = function () {</blockquote><blockquote>/*</blockquote><blockquote>- start page visible section call back</blockquote><blockquote>- using this call back, the reader app could know which section is currently visible to the user and highlighting the location in table of content</blockquote><blockquote>- implementation to be discussed. It might not be a good idea to modify window.onscroll directly</blockquote><blockquote>*/</blockquote><blockquote>var handleScroll = function() {</blockquote><blockquote>var visible = tableOfContents.visibleSectionIndexes();</blockquote><blockquote>if (visible.length > 0) {</blockquote><blockquote>window.location = 'pagescroll:scrollEnded?start=' + visible[0] + '&length=' + visible.length;</blockquote><blockquote>}</blockquote><blockquote>}</blockquote><blockquote>window.onscroll = handleScroll;</blockquote><blockquote>handleScroll();</blockquote><blockquote>}</blockquote><blockquote><br>
 
</blockquote><blockquote>// OPTIONAL</blockquote><blockquote>this.stopVisibleSectionCallBack = function () {</blockquote><blockquote>/*</blockquote><blockquote>- stop page visible section call back</blockquote><blockquote>*/</blockquote><blockquote>window.onscroll = undefined;</blockquote><blockquote>}</blockquote><blockquote>}</blockquote><blockquote><br>
        <code>/*</code>
</blockquote><blockquote>function Section(title: string, level: number) {}</blockquote>
 
        <code>- return an array of section objects</code>
 
        <code>- in case there there is no table of content, return an empty array</code>
 
        <code>*/</code>
 
    <code>}</code>
 
<code><br>
</code>
 
    <code>this.scrollToSection = function(index: number) {</code>
 
        <code>/*</code>
 
        <code>- scroll to a section with index in array returned by this.getSections</code>
 
        <code>- perform change to the page so that the section become available for reading, such as expanding the collapsed section</code>
 
         <code>*/</code>
 
    <code>}</code>
 
<code><br>
</code>
 
    <code>// OPTIONAL</code>
 
    <code>this.visibleSectionIndexes = function() {</code>
 
        <code>/*</code>
 
        <code>- return an array of visible section's indexes</code>
 
        <code>- in case there there is no table of content, return an empty array</code>
 
        <code>*/</code>
 
    <code>}</code>
 
<code><br>
</code>
 
    <code>// OPTIONAL</code>
 
    <code>this.startVisibleSectionCallBack = function () {</code>
 
        <code>/*</code>
 
        <code>- start page visible section call back</code>
 
        <code>- using this call back, the reader app could know which section is currently visible to the user and highlighting the location in table of content</code>
 
        <code>- implementation to be discussed. It might not be a good idea to modify window.onscroll directly</code>
 
        <code>*/</code>
 
        <code>var handleScroll = function() {</code>
 
            <code>var visible = tableOfContents.visibleSectionIndexes();</code>
 
            <code>if (visible.length > 0) {</code>
 
                <code>window.location = 'pagescroll:scrollEnded?start=' + visible[0] + '&length=' + visible.length;</code>
 
            <code>}</code>
 
        <code>}</code>
 
        <code>window.onscroll = handleScroll;</code>
 
        <code>handleScroll();</code>
 
    <code>}</code>
 
<code><br>
</code>
 
    <code>// OPTIONAL</code>
 
    <code>this.stopVisibleSectionCallBack = function () {</code>
 
        <code>/*</code>
 
        <code>- stop page visible section call back</code>
 
        <code>*/</code>
 
        <code>window.onscroll = undefined;</code>
 
    <code>}</code>
 
<code>}</code>
 
<code><br>
</code>
 
<code>function Section(title: string, level: number) {}</code>
12

edits

Navigation menu