{"id":33195949,"url":"https://github.com/mhuggins/jquery-countTo","last_synced_at":"2025-11-21T02:00:42.532Z","repository":{"id":3148858,"uuid":"4178521","full_name":"mhuggins/jquery-countTo","owner":"mhuggins","description":"A jQuery plugin that will count up (or down) to a target number at a specified speed.","archived":false,"fork":false,"pushed_at":"2017-04-05T23:38:13.000Z","size":21,"stargazers_count":767,"open_issues_count":10,"forks_count":210,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-11-11T05:17:16.303Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ryuzaki01/pocketmine-BlockHunt","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhuggins.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-30T00:11:13.000Z","updated_at":"2025-10-20T13:39:01.000Z","dependencies_parsed_at":"2022-08-30T16:11:29.335Z","dependency_job_id":null,"html_url":"https://github.com/mhuggins/jquery-countTo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mhuggins/jquery-countTo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuggins%2Fjquery-countTo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuggins%2Fjquery-countTo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuggins%2Fjquery-countTo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuggins%2Fjquery-countTo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhuggins","download_url":"https://codeload.github.com/mhuggins/jquery-countTo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhuggins%2Fjquery-countTo/sbom","scorecard":{"id":640322,"data":{"date":"2025-08-11","repo":{"name":"github.com/mhuggins/jquery-countTo","commit":"91fff4b6166397d03a06743755c7656650f6f8d9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"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":"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":"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":"Code-Review","score":3,"reason":"Found 8/25 approved changesets -- score normalized to 3","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":"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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 13 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-21T10:31:22.301Z","repository_id":3148858,"created_at":"2025-08-21T10:31:22.301Z","updated_at":"2025-08-21T10:31:22.301Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285543732,"owners_count":27189594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-21T02:00:06.175Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-11-16T08:00:23.067Z","updated_at":"2025-11-21T02:00:42.525Z","avatar_url":"https://github.com/mhuggins.png","language":"JavaScript","funding_links":[],"categories":["jQuery Components"],"sub_categories":[],"readme":"jQuery countTo Plugin\n=====================\n[jQuery countTo](https://github.com/mhuggins/jquery-countTo) is a\n[jQuery](http://jquery.com) plugin that will count up (or down) to a target\nnumber at a specified speed, rendered within an HTML DOM element.\n\nRequirements:\n-------------\n[jQuery countTo](https://github.com/mhuggins/jquery-countTo) requires the\nlatest version of [jQuery](http://jquery.com).\n\nUsage:\n------\nThere are two main approaches to using this plugin: through data attributes on\nDOM nodes, and through JS options explicitly passed to the `countTo` function.\n\nThese two methods can be mixed and matched as well.  Data attributes takes\nprecedence over JS options.\n\n### Data Attributes\n\nThis approach allows you to define `data-*` attributes on whatever DOM element\nwill act as a container for your counter.  This is useful when you already know\nthe values at the time that you are constructing the DOM.\n\n    \u003cspan class=\"timer\" data-from=\"25\" data-to=\"75\"\u003e\u003c/span\u003e\n    \n    \u003cscript type=\"text/javascript\"\u003e\n      $('.timer').countTo();\n    \u003c/script\u003e\n\nA more detailed example that demonstrates all possible options being used is as\nfollows.\n\n    \u003cspan class=\"timer\" data-from=\"0\" data-to=\"100\"\n          data-speed=\"5000\" data-refresh-interval=\"50\"\u003e\u003c/span\u003e\n    \n    \u003cscript type=\"text/javascript\"\u003e\n      $('.timer').countTo();\n    \u003c/script\u003e\n\nRefer to the **Options** section below for more info on the various options\navailable.\n\n### JavaScript Options\n\nThis approach allows you to pass values to the `countTo` function.  This is\nuseful when you don't know the values at the time the DOM is being rendered.\n\n    \u003cspan class=\"timer\"\u003e\u003c/span\u003e\n    \n    \u003cscript type=\"text/javascript\"\u003e\n      $('.timer').countTo({from: 0, to: 500});\n    \u003c/script\u003e\n\nA more detailed example that demonstrates all possible options being used is as\nfollows.\n\n    \u003cspan class=\"timer\"\u003e\u003c/span\u003e\n    \n    \u003cscript type=\"text/javascript\"\u003e\n      $('.timer').countTo({\n        from: 50,\n        to: 2500,\n        speed: 1000,\n        refreshInterval: 50,\n        formatter: function (value, options) {\n          return value.toFixed(options.decimals);\n        },\n        onUpdate: function (value) {\n          console.debug(this);\n        },\n        onComplete: function (value) {\n          console.debug(this);\n        }\n      });\n    \u003c/script\u003e\n\nRefer to the **Options** section below for more info on the various options\navailable.\n\nOptions:\n--------\nA complete listing of the options that can be passed to the `countTo` method is\nbelow.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eOption\u003c/th\u003e\n    \u003cth\u003eData Attribute\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003efrom\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003edata-from\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThe number to start counting from. \u003ci\u003e(default: 0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003eto\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003edata-to\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThe number to stop counting at. \u003ci\u003e(default: 100)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003espeed\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003edata-speed\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThe number of milliseconds it should take to finish counting.\n        \u003ci\u003e(default: 1000)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003erefreshInterval\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003edata-refresh-interval\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThe number of milliseconds to wait between refreshing the counter.\n        \u003ci\u003e(default: 100)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003edecimals\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003edata-decimals\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThe number of decimal places to show when using the default\n        formatter. \u003ci\u003e(default: 0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"2\"\u003e\u003ci\u003eformatter (value, options)\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eA handler that is used to format the current value before rendering to\n        the DOM.  The true current value and options set is passed to the\n        function, and it is run in the context of the DOM element.  It must\n        return the formatted value. \u003ci\u003e(default:\n        \u003ccode\u003evalue.toFixed(options.decimals)\u003c/code\u003e)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"2\"\u003e\u003ci\u003eonUpdate (value)\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eA callback function that is triggered for every iteration that the\n        counter updates.  The currently rendered value is passed to the\n        function, and it is called in the context of the DOM element.\n        \u003ci\u003e(default: null)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"2\"\u003e\u003ci\u003eonComplete (value)\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eA callback function that is triggered when counting finishes.  The\n        final rendered value is passed to the function, and it is called in the\n        context of the DOM element. \u003ci\u003e(default: null)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nFunctions:\n----------\nThis plugin also supports functions, primarily for changing state.  Functions are\ncalled by passing the name as a string to the `countTo` jQuery function, e.g.:\n`$('#timer').countTo('stop')`.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003estart\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eResumes the timer if it is stopped.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003estop\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eStops (pauses) the timer if it is running.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003etoggle\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eStarts or stops the timer based upon its current state.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ci\u003erestart\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eRestarts the timer at its initial \"from\" value.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nCreated By:\n-----------\n[Matt Huggins](http://matthuggins.com)\n\nLicense:\n--------\njQuery-countTo is released under the\n[MIT license](http://www.opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhuggins%2Fjquery-countTo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhuggins%2Fjquery-countTo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhuggins%2Fjquery-countTo/lists"}