{"id":48304429,"url":"https://github.com/isg-software/advscrollevent","last_synced_at":"2026-04-04T23:55:55.102Z","repository":{"id":57281964,"uuid":"48707415","full_name":"isg-software/advscrollevent","owner":"isg-software","description":"jQuery plug-in providing special higher-level scroll events.","archived":false,"fork":false,"pushed_at":"2016-01-17T20:35:11.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-01-30T12:08:12.685Z","etag":null,"topics":["event-handlers","jquery","scroll"],"latest_commit_sha":null,"homepage":"http://www.isg-software.de/advscrollevent/indexe.html","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isg-software.png","metadata":{"files":{"readme":"README.html","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-28T18:55:06.000Z","updated_at":"2018-04-14T19:59:43.000Z","dependencies_parsed_at":"2022-08-24T12:40:40.562Z","dependency_job_id":null,"html_url":"https://github.com/isg-software/advscrollevent","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/isg-software/advscrollevent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isg-software%2Fadvscrollevent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isg-software%2Fadvscrollevent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isg-software%2Fadvscrollevent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isg-software%2Fadvscrollevent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isg-software","download_url":"https://codeload.github.com/isg-software/advscrollevent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isg-software%2Fadvscrollevent/sbom","scorecard":{"id":495401,"data":{"date":"2025-08-11","repo":{"name":"github.com/isg-software/advscrollevent","commit":"5e6ae366a25990053202bea93a1e468040ea43c9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Code-Review","score":0,"reason":"Found 0/18 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-19T20:19:51.705Z","repository_id":57281964,"created_at":"2025-08-19T20:19:51.706Z","updated_at":"2025-08-19T20:19:51.706Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31419548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["event-handlers","jquery","scroll"],"created_at":"2026-04-04T23:55:54.509Z","updated_at":"2026-04-04T23:55:55.097Z","avatar_url":"https://github.com/isg-software.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003cmeta charset=\"utf-8\"/\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003ch1 id=\"advscrollevent\"\u003eadvscrollevent\u003c/h1\u003e\n\n\u003cp\u003ejQuery plug-in providing advanced scroll events. These might, for example, trigger an event, whenever a window or frame content has been scrolled up or down by at least a certain amount of pixels, optionally only after a change of the scroll direction.\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"http://www.isg-software.de/advscrollevent/indexe.html\"\u003eProject home page\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 id=\"whatisthis\"\u003eWhat is this?\u003c/h2\u003e\n\n\u003cp\u003eThis software module contains a \u003ca href=\"https://jquery.com\"\u003ejQuery\u003c/a\u003e plug-in building on jQuery\u0026#8217;s native \u003ccode\u003escroll\u003c/code\u003e event: By applying jQuery\u0026#8217;s \u003ca href=\"http://api.jquery.com/scroll/\"\u003e.scroll()\u003c/a\u003e method to selected scrollable content (typically, but not limited to, \u003ccode\u003e$(window)\u003c/code\u003e), you may register an event handler wich gets called whenever the content is scrolled. With jQuery\u0026#8217;s methods \u003ca href=\"http://api.jquery.com/scrollTop/\"\u003escrollTop\u003c/a\u003e resp. \u003ca href=\"http://api.jquery.com/scrollLeft/\"\u003escrollLeft\u003c/a\u003e the event handler may then determine the acutal position of the viewport.\u003c/p\u003e\n\n\u003cp\u003eFor many purposes, those native functions are ‘a bit low-level’, and this plug-in builds upon them in order to define ‘higher-level’ events such as: User has scrolled upwards for at least 20px for the first time after scrolling downwards. The plug-in provides a couple of options (like the 20px threshold in the previous example) which, among others, help prevent accidentally triggering events only due un impreciseness (such as minimal scrolling movements caused by a user just laying his finger onto a touch screen with a little, unintended movement).\u003c/p\u003e\n\n\u003ch2 id=\"examples\"\u003eExamples\u003c/h2\u003e\n\n\u003cp\u003eThis project contains one demo page named \u003ccode\u003edemo.html\u003c/code\u003e, which contains some demonstrations. As one possible use-case, it shows how tool bars or panels may be hidden (e.g. on a mobile site layout) when the user scrolls down, probably reading the text of the page, whereas the panels are shown again, whenever the user scrolls upwards or reaches the bottom of the page, assuming that in both cases he doesn\u0026#8217;t read the main content any more and should be provided with more means of interaction.\u003c/p\u003e\n\n\u003cp\u003eOpen the demo page in a browser to try out the example configuration, see the html source (including embedded javascript) to see how the configuration was done.\u003c/p\u003e\n\n\u003cp\u003eFeel encouraged to make copies of the demo file play around with the options to see what happens.\u003c/p\u003e\n\n\u003ch2 id=\"javascripts\"\u003eJavaScripts\u003c/h2\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ejs/jquery-advscrollevent.js\u003c/code\u003e is the original, uncompressed script file. It also contains comments to document its usage.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejs/min/jquery-advscrollevent-min.js\u003c/code\u003e is a minified (compressed) version of the previous script for production use.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 id=\"usage\"\u003eUsage\u003c/h2\u003e\n\n\u003ch3 id=\"basics\"\u003eBasics\u003c/h3\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003eInclude jQuery (tested with jQuery 2.1.14, but should work with newer versions, too, as well as with current jQuery 1 versions) and one of the two script files of this package into the head of your HTML file. (For production on a web server, the minified version is recommended, while the source version might be better for development, since it\u0026#8217;s easier to debug and contains a short usage reference.)\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eWrite and include some script code that gets executed after rendering the HTML (generating the DOM). This code is to select a scrollable element and apply the plug-in function \u003ccode\u003eadvScroll()\u003c/code\u003e to the jQuery resultset in order to register one or more event handlers. Usually, the scrollable element is the whole web page, selected by \u003ccode\u003e$(window)\u003c/code\u003e, but you may select any scrollable node where the original \u003ca href=\"http://api.jquery.com/scroll/\"\u003escroll()\u003c/a\u003e function is applicable.\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eThe \u003ccode\u003eadvScroll\u003c/code\u003e function takes one object as an argument, which should at least contain one event handler function for at least one of the advanced events this plug-in provides. Example:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026lt;script type=\u0026quot;text/javascript\u0026quot;\u0026gt;\n    $(function() {\n        $(window).advScroll({\n            onUp: function(evt, px, top) {...},\n            onDown: function(evt, px, top) {...}\n            oncePerDirection: true\n        });\n    });\n\u0026lt;/script\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eFor each selected element (a jQuery resultset can contains more than one) the plug-in registers a \u003ca href=\"http://api.jquery.com/scroll/\"\u003escroll\u003c/a\u003e event handler which guards any scroll movement in order to trigger its own event(s) whenever the conditions are met.\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3 id=\"options\"\u003eOptions\u003c/h3\u003e\n\n\u003cp\u003eAs already established above, the \u003ccode\u003eadvScroll()\u003c/code\u003e function takes exactly one argument, which has to be a JavaScript object defining options via its properties. The following option properties are defined:\u003c/p\u003e\n\n\u003ch4 id=\"optionsforeventhandlerfunction\"\u003eOptions for event handler function\u003c/h4\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eonUp(event, diff, scrollTop)\u003c/code\u003e: function (default: \u003ccode\u003enull\u003c/code\u003e)\u003cbr/\u003e\nEvent handler function called when user has scrolled up for at least \u003ccode\u003eupBy\u003c/code\u003e pixels (see option \u003ccode\u003eupBy\u003c/code\u003e in the next section). (In \u003cem\u003ehorizontal mode\u003c/em\u003e—see \u003ccode\u003ehorizontal\u003c/code\u003e—this event is triggered upon scrolling to the left instead of upwards.)\u003cbr/\u003e\nArguments:\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eevent\u003c/code\u003e is the original scroll event,\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ediff\u003c/code\u003e is the amount of pixels scrolled up since last scrolling down,\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escrollTop\u003c/code\u003e is the element\u0026#8217;s new absolute scrollTop value.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ethis\u003c/code\u003e is bound to the sender object, e.g. \u003ccode\u003ewindow\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eonDown(event, diff, scrollTop)\u003c/code\u003e: function (default: \u003ccode\u003enull\u003c/code\u003e)\u003cbr/\u003e\nEvent handler function called when user has scrolled down (or to the right in \u003cem\u003ehorizontal mode\u003c/em\u003e) for at least \u003ccode\u003edownBy\u003c/code\u003e pixels, see \u003ccode\u003eonUp\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eonTop\u003c/code\u003e: boolean or function (default: \u003ccode\u003efalse\u003c/code\u003e)\u003cbr/\u003e\nIf \u003ccode\u003etrue\u003c/code\u003e, the \u003ccode\u003eonUp\u003c/code\u003e-function gets called upon reaching the top (resp. left end) of the page.\u003cbr/\u003e\nIf a \u003ccode\u003efunction\u003c/code\u003e, this very function gets called upon reaching the top of the page. (The function\u0026#8217;s arguments are the same as those of \u003ccode\u003eonUp\u003c/code\u003e.)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eonBottom\u003c/code\u003e: boolean or function (default: \u003ccode\u003efalse\u003c/code\u003e)\u003cbr/\u003e\nSee \u003ccode\u003eonTop\u003c/code\u003e, just referring to the bottom (resp. right end) of the page. If \u003ccode\u003etrue\u003c/code\u003e, the \u003ccode\u003eonDown\u003c/code\u003e handler is re-used, if a function is assigned, that will be used as event handler.\u003cbr/\u003e\n\u003cstrong\u003eImportant\u003c/strong\u003e: The \u003ccode\u003eonBottom\u003c/code\u003e event needs to find the element containing the scrollable content in order to calculate its height (or width in horizontal mode). If the jQuery plug-in is \u003cem\u003enot\u003c/em\u003e applied to \u003ccode\u003e$(window)\u003c/code\u003e, but to some other scrollable content like a DIV with CSS \u003ccode\u003eoverflow:scroll\u003c/code\u003e, the content of that container has to be specified in the \u003ccode\u003escrollableContent\u003c/code\u003e property in order for the \u003ccode\u003eonBottom\u003c/code\u003e event to work properly!\u003cbr/\u003e\n\u003cstrong\u003eNote:\u003c/strong\u003e This event is not guaranteed to work precisely in every browser, at least not in the current state of the plug-in!\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch4 id=\"otheroptions\"\u003eOther options\u003c/h4\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eupBy\u003c/code\u003e: number (default: 20)\u003cbr/\u003e\nAmount of pixels to at least scroll up since last scrolling down before the \u003ccode\u003eonUp\u003c/code\u003e-Event is fired.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edownBy\u003c/code\u003e: number (default: 20)\u003cbr/\u003e\nAmound of pixels to at least scroll down since loading doc or scrolling up before the \u003ccode\u003eonDown\u003c/code\u003e-Event is fired.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escrollableContent\u003c/code\u003e: jQuery resultset or (selector-)string (default: \u003ccode\u003e$(document)\u003c/code\u003e)\u003cbr/\u003e\nCurrently only needed if the \u003ccode\u003eonBottom\u003c/code\u003e event is used and ony when applied to something other than \u003ccode\u003e$(window)\u003c/code\u003e.\u003cbr/\u003e\nIf the plug-in function is called on \u003ccode\u003e$(window)\u003c/code\u003e, the default (\u003ccode\u003e$(document)\u003c/code\u003e) is correct, but if you call the plug-in e.g. on some DIV elements with CSS \u003ccode\u003eoverflow: scroll\u003c/code\u003e or \u003ccode\u003eoverflow: auto\u003c/code\u003e, the content of those DIVs have to be wrapped in another element which is then to be selected as \u003ccode\u003escrollableContent\u003c/code\u003e. If this is exactly one element, you may \u0026#8220;preselect\u0026#8221; it and assign the jQuery resultset to this property (as is the default \u003ccode\u003e$(document)\u003c/code\u003e). Otherwise you may simply assign a jQuery selector \u003cem\u003estring\u003c/em\u003e which will then be executed locally inside the container element. See demo.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eoncePerDirection\u003c/code\u003e: boolean (default: false)\u003cbr/\u003e\nIf \u003ccode\u003efalse\u003c/code\u003e, the events \u003ccode\u003eonUp\u003c/code\u003e resp. \u003ccode\u003eonDown\u003c/code\u003e fire continuously once the \u003ccode\u003eupBy\u003c/code\u003e resp. \u003ccode\u003edownBy\u003c/code\u003e threshold has been crossed.\u003cbr/\u003e\nIf true, an \u003ccode\u003eonUp\u003c/code\u003e or \u003ccode\u003eonDown\u003c/code\u003e event is fired at most once until changing the direction.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e: number (default: 50)\u003cbr/\u003e\nIf zero (0), any change of scroll direction will immediately be treated as a “direction change”, meaning the corresponding \u003ccode\u003eonUp\u003c/code\u003e or \u003ccode\u003eonDown\u003c/code\u003e event will fire after scrolling \u003ccode\u003eupBy\u003c/code\u003e resp. \u003ccode\u003edownBy\u003c/code\u003e pixels into the new direction.\u003cbr/\u003e\nIf greater than zero, this defines a delay in milli seconds which the page needs to stand still before a direction change.\u003cbr/\u003e\nExample: You are scrolling downwards, then suddenly you scroll upwards for a bit without waiting for at least \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e milli seconds: This will not trigger a \u003ccode\u003eonUp\u003c/code\u003e-event, in \u003cem\u003e‘continuous mode’\u003c/em\u003e (i.e. \u003ccode\u003eoncePerDirection==false\u003c/code\u003e) it will still trigger the \u003ccode\u003eonDown\u003c/code\u003e event even though you\u0026#8217;re scrolling upwards, as this is still regarded as part of the same scrolling movement, a small irregularity, so to speek.\nHowever, if you keep scrolling up further and reach the point again, where you started to scroll down or you scroll up for at least \u003ccode\u003edirectionChangeThreshold\u003c/code\u003e pixels (see below), this upwards movement is no longer regarded as probably unintended irregularity, but as an intended direction change despite the page not having stood still for \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e!\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edirectionChangeThreshold\u003c/code\u003e: number (default: 500)\u003cbr/\u003e\nIf \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e is \u0026gt; 0, this threshold describes the maximum number of pixels a scrolling movement into the opposite direction without waiting for the specified timeout will not be regarded as direction change. In other words: When suddenly changing the scrolling direction and scrolling back for more pixels than specified here, a direction change will be recognised even if the \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e timeout has not yet been exceeded and even if the initial scrolling motion had begun in a greater distance, i.e you didn\u0026#8217;t scroll back to where the motion started.\u003cbr/\u003e\nIf zero (0), this setting will be ignored.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehorizontal\u003c/code\u003e: boolean (default: false)\u003cbr/\u003e\nIf set to true, the plugin works for horizontal instead of vertical scrolling. All properties keep their names, \u003ccode\u003eonUp\u003c/code\u003e refers to scrolling to the left, \u003ccode\u003eonDown\u003c/code\u003e to scrolling to the right etc.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eIf you want to configure the \u003ccode\u003eoncePerDirection\u003c/code\u003e or \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e settings separately for both scrolling directions, you may use the following options:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eoncePerUp\u003c/code\u003e: boolean (default: \u003ccode\u003eundefined\u003c/code\u003e)\u003cbr/\u003e\nIf defined, this setting overrides the \u003ccode\u003eoncePerDirection\u003c/code\u003e setting for scrolling upwards.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eoncePerDown\u003c/code\u003e: boolean (default: \u003ccode\u003eundefined\u003c/code\u003e)\u003cbr/\u003e\nIf defined, this setting overrides the \u003ccode\u003eoncePerDirection\u003c/code\u003e setting for scrolling downwards.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edownUpDelayMillis\u003c/code\u003e: number (default: \u003ccode\u003eundefined\u003c/code\u003e)\u003cbr/\u003e\nIf defined, this setting overrides the \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e setting for the transition from scrolling downwards to scrolling upwards.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eupDownDelayMillis\u003c/code\u003e: number (default: \u003ccode\u003eundefined\u003c/code\u003e)\u003cbr/\u003e\nIf defined, this setting overrides the \u003ccode\u003edirectionChangeDelayMillis\u003c/code\u003e setting for the transition from scrolling upwards to scrolling downwards.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3 id=\"overwritingdefaultoptions\"\u003eOverwriting default options\u003c/h3\u003e\n\n\u003cp\u003eThe descriptions for the options above contain default values wich apply, if you don\u0026#8217;t add that option key to the argument object you pass to the plug-in function.\u003c/p\u003e\n\n\u003cp\u003eAny defaults (except the \u003ccode\u003eundefined\u003c/code\u003e ones) are taken from the object \u003ccode\u003e$.fn.advScroll.defaults\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003eIt is possible for you to override these defaults by simply modifying said object before first calling the plug-in function.\u003c/p\u003e\n\n\u003ch2 id=\"license:bsd2-clause\"\u003eLicense: BSD 2-clause\u003c/h2\u003e\n\n\u003cp\u003eCopyright (c) 2016, Immo Schulz-Gerlach, www.isg-software.de\u003cbr/\u003e\nAll rights reserved.\u003c/p\u003e\n\n\u003cp\u003eRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\u003c/p\u003e\n\n\u003col\u003e\n\u003cli\u003e\u003cp\u003eRedistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\u003cp\u003eRedistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\u003c/p\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003cp\u003eTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \u0026#8220;AS IS\u0026#8221; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\u003c/p\u003e\n\n\u003c/body\u003e\n\u003c/html\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisg-software%2Fadvscrollevent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisg-software%2Fadvscrollevent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisg-software%2Fadvscrollevent/lists"}