Difference between revisions of "Javascript API"

Jump to navigation Jump to search
620 bytes removed ,  14:28, 18 October 2017
Line 33: Line 33:


==== Table of content ====
==== Table of content ====
<code>function TableOfContents () {</code>
<nowiki><source></nowiki>


    <code>this.getSections = function() {</code>
function TableOfContents () {


        <code>/*</code>
    this.getSections = function() {


        <code>- return an array of section objects</code>
        /*


        <code>- in case there there is no table of content, return an empty array</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><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>
    this.scrollToSection = function(index: number) {


        <code>- perform change to the page so that the section become available for reading, such as expanding the collapsed section</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><br>
        */
</code>


    <code>// OPTIONAL</code>
    }


    <code>this.visibleSectionIndexes = function() {</code>


        <code>/*</code>


        <code>- return an array of visible section's indexes</code>
    // OPTIONAL


        <code>- in case there there is no table of content, return an empty array</code>
    this.visibleSectionIndexes = function() {


        <code>*/</code>
        /*


    <code>}</code>
        - return an array of visible section's indexes


<code><br>
        - in case there there is no table of content, return an empty array
</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>
    // OPTIONAL


        <code>- implementation to be discussed. It might not be a good idea to modify window.onscroll directly</code>
    this.startVisibleSectionCallBack = function () {


        <code>*/</code>
        /*


        <code>var handleScroll = function() {</code>
        - start page visible section call back


            <code>var visible = tableOfContents.visibleSectionIndexes();</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>if (visible.length > 0) {</code>
        - implementation to be discussed. It might not be a good idea to modify window.onscroll directly


                <code>window.location = 'pagescroll:scrollEnded?start=' + visible[0] + '&length=' + visible.length;</code>
        */


            <code>}</code>
        var handleScroll = function() {


        <code>}</code>
            var visible = tableOfContents.visibleSectionIndexes();


        <code>window.onscroll = handleScroll;</code>
            if (visible.length > 0) {


        <code>handleScroll();</code>
                window.location = 'pagescroll:scrollEnded?start=' + visible[0] + '&length=' + visible.length;


    <code>}</code>
            }


<code><br>
        }
</code>


    <code>// OPTIONAL</code>
        window.onscroll = handleScroll;


    <code>this.stopVisibleSectionCallBack = function () {</code>
        handleScroll();


        <code>/*</code>
    }


        <code>- stop page visible section call back</code>


        <code>*/</code>


        <code>window.onscroll = undefined;</code>
    // OPTIONAL


    <code>}</code>
    this.stopVisibleSectionCallBack = function () {


<code>}</code>
        /*


<code><br>
        - stop page visible section call back
</code>


<code>function Section(title: string, level: number) {}</code>
        */
 
        window.onscroll = undefined;
 
    }
 
}
 
 
 
function Section(title: string, level: number) {}
 
<nowiki></source></nowiki>
12

edits

Navigation menu