This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Dec 25, 2022. It is now read-only.

Repository files navigation

React Ticker

NPMJavaScript Style Guide

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

It can be used to replace the deprecated marquee-HTML-tag.

Check out the Demo!

Features:

  • Move its child-elements from right to left or left to right.
  • Dynamically create child-elements, for example from an API. (Does not work for dynamic widths yet!)
  • Repeat the elements infinitely.
  • Three different modes of repetition.
  • Control speed, starting and stopping.
  • Define start offset.

Getting started

  1. Install the package with npm or yarn

    npm install react-ticker

    yarn add react-ticker

  2. Use it in your React components!

importReactfrom'react'importTickerfrom'react-ticker'constMoveStuffAround=()=>(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)exportdefaultMoveStuffAround

Take a look at the CodeSandbox.

Props

NameTypeDefaultDescription
speednumber5
directionstringtoLeftOpposite direction: toRight
modestringchainchain By default, the elements follow one and another immediately.
await A new element appears as soon as the previous one has disappeared completely.
smooth A new element appears as soon as the previous one starts to disappear.
heightstring or numberautoAuto-height: By default, the Ticker will adapt the height of its highest visible child. Fixed height: Alternatively you can give it a fixed height: A number will be set as pixels, a string can be everything.
offsetstring or number0By default, the first element in the Ticker will align to the Tickers left side.
Fixed Offset: A number will move the Ticker's first child to the right by n pixel.
Relative Offset: The offset can also be defined in percent of the Ticker’s width.
Run-in: The string run-in hides the first element, so the Ticker starts empty.
movebooleantrueSet to false stops the Ticker.
onNextfunction(index) => {}Return the index of the next element to the parent component
onFinishfunction() => {}Tell the parent component that one element is out of screen

Gotchas

Await loading webfonts

If you want to move text around, be sure, that your webfonts have loaded, before you initiate the Ticker-component! Otherwise the widths might be calculated wrong for the first iteration. To await your webfonts, try out Web Font Loader.

Avoid linebreaks

If you want to avoid linebreaks in your text-elements, use the CSS-property white-space: nowrap;.

Dynamic loading of elements

It is possible to dynamically load new elements. This feature is still experimental. It only works properly, if you use the property offset="run-in" and provide a placeholder while loading.

constGetRatesFromAPI=()=>{const[rates,setRates]=useState("");useEffect(()=>{asyncfunctionfetchData(){constratesFromAPI=awaitmakeAPICall();setRates(ratesFromAPI);}fetchData();},[]);// A placeholder is needed, to tell react-ticker, that width and height might have changed// It uses MutationObserver internallyreturnrates ? (<pstyle={{whiteSpace: "nowrap"}}>{rates.join(" +++ ")} +++ </p>) : (<pstyle={{visibility: "hidden"}}>Placeholder</p>);};functionStockTicker(){return(<Tickeroffset="run-in"speed={10}>{()=><GetRatesFromAPI/>}</Ticker>);}exportdefaultStockTicker;

React Ticker calls its function-as-child anytime it runs out of content. It does not matter, if this function is a static component or a component, that loads content from an API. It is important, that you provide a placeholder during the loading time of the API-call, to trigger the mutation observer when the content has arrived.

Render only if browser-tab is visible

Currently react-ticker runs out of elements, when you leave the browser tab. To fix it, there is this workaround using the Page Visibility API utilized by this great Module: react-page-visibility

importReact,{useState}from'react'importTickerfrom'react-ticker'importPageVisibilityfrom'react-page-visibility'constMoveStuffAround=()=>{const[pageIsVisible,setPageIsVisible]=useState(true)consthandleVisibilityChange=(isVisible)=>{setPageIsVisible(isVisible)}return(<PageVisibilityonChange={handleVisibilityChange}>{pageIsVisible&&(<Ticker>{({ index })=>(<><h1>This is the Headline of element #{index}!</h1><imgsrc="www.my-image-source.com/"alt=""/></>)}</Ticker>)}</PageVisibility>)}exportdefaultMoveStuffAround

Dependencies

React Ticker has no dependecies besides React 16+ (the minimum minor-release still has to be looked up).

Browser Support

React Ticker should work in all current browsers as well as Internet Explorer 11. If you discover bugs in older browser versions, please file an issue!

Contributing

Every contribution is very much appreciated. Feel free to file bugs, feature- and pull-requests.

If this plugin is helpful for you, please star it on GitHub.

License

MIT © https://github.com/AndreasFaust

About

React Ticker is a lightweight, performant React component, that moves text, images and videos infinitely like a newsticker.

Resources

Stars

296 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages