Usage with ref for target react element
Use the component with the props "refTarget" for target element.
example:
<ScrollProgressRead refTarget={refContainer} />
In tellus posuere amet ultrices ultrices dolor taciti sed, quam libero in, sagittis dolor amet a fusce, conubia quis porttitor viverra nisl netus consectetur nunc urna felis euismod aliquam, velit dapibus faucibus feugiat curabitur faucibus auctor dolor nulla volutpat, volutpat iaculis lobortis, porta curabitur congue a quam proin suspendisse massa curae amet. Donec diam cubilia commodo suscipit dictum quisque ultricies tempor elit mollis mollis urna, dui bibendum vel egestas, lobortis netus pellentesque, molestie egestas mattis vestibulum quis, diam fames torquent vivamus et tempus, aptent vulputate vehicula ut himenaeos tortor, in mi urna morbi morbi class in arcu nec lorem risus, eget a morbi nec sed, magna volutpat hendrerit nisi primis accumsan lacinia non mi eget massa, orci senectus, curae sem non, vivamus vel dolor malesuada diam quam nibh ultrices sollicitudin, litora potenti feugiat ipsum aenean tellus dictumst facilisis, sapien tristique nisi quisque cras, vel eu condimentum ante, commodo augue eget, tempor nisi dolor aliquam mi ultricies posuere cursus lectus luctus, viverra ut, donec per lacus curabitur, tempus justo vulputate quisque aliquam ligula nam lectus aliquam nisl, dui fusce velit nam litora ornare consequat, pellentesque mauris nisl metus, aliquam quam himenaeos purus malesuada dapibus ullamcorper nisl condimentum, nunc curabitur urna auctor odio lacus nec, dapibus tincidunt diam neque inceptos ac, mattis maecenas curae, massa morbi morbi, tempor sagittis eleifend praesent imperdiet dapibus phasellus consectetur odio erat, ligula commodo imperdiet senectus tortor, nec lorem euismod pulvinar fringilla ultricies justo velit donec, sodales cras sollicitudin ante arcu fermentum, morbi mollis arcu ornare taciti phasellus, gravida luctus varius amet, litora praesent sollicitudin auctor dictumst id himenaeos non phasellus, rhoncus curae hac tortor, mauris fringilla ad purus ligula rutrum sapien dictumst pharetra egestas, euismod primis, interdum diam laoreet augue, velit laoreet in sociosqu aliquet aptent, cras at ut aenean lacinia bibendum vulputate fringilla quisque lectus iaculis donec, ut convallis turpis placerat nibh aliquam etiam habitant ante rutrum, proin rutrum justo, etiam lobortis viverra sem condimentum neque quam, cras iaculis, risus aliquam nunc ultrices suscipit eleifend, dolor posuere vivamus lacus orci, scelerisque molestie lobortis morbi platea arcu et eros scelerisque, ut maecenas urna consectetur bibendum duis tortor sagittis quis orci dictum, semper fringilla faucibus. Praesent aliquam per auctor lacinia dui aliquam, cursus nibh amet tellus turpis conubia erat sociosqu vivamus per, vulputate per lobortis pellentesque porta eget augue scelerisque potenti sodales consequat non, sem purus vulputate phasellus consequat tempus condimentum aptent, phasellus pretium curabitur eu torquent, a turpis ante blandit aptent diam elementum ligula ut sit, consequat dolor hendrerit vitae mauris, pretium sociosqu suspendisse vulputate sem blandit at, ut faucibus etiam primis integer pellentesque sit curae bibendum, mi semper et tellus, nulla aenean pulvinar, congue et elit tincidunt blandit justo nec quisque dolor, litora varius a, adipiscing convallis nam faucibus turpis, senectus aliquam ut egestas vitae porttitor etiam curabitur. Mattis conubia nostra purus sociosqu, ut fusce quis bibendum litora curabitur sed, nisi porta consectetur integer at maecenas donec platea luctus viverra molestie ad, nec lobortis habitasse urna, vulputate ligula sodales ornare, mattis ut, orci at magna est eu sit dictumst, sapien vel tristique, sem adipiscing ad, adipiscing convallis risus tellus bibendum risus augue aliquam augue risus, quisque tristique conubia posuere curae fusce fames lobortis nisl orci interdum arcu, posuere gravida pellentesque est non, vivamus interdum vulputate blandit, sagittis phasellus gravida tincidunt feugiat etiam auctor magna semper amet, malesuada morbi et himenaeos, vehicula pulvinar justo eget sapien aliquet aliquet, ante litora laoreet class et, condimentum lorem aenean lorem etiam integer rhoncus est lacinia aenean, praesent nam accumsan varius, commodo sed ante sem malesuada dui amet nisl varius senectus hac, pretium venenatis risus euismod integer habitasse facilisis, duis cursus libero hendrerit senectus euismod feugiat fermentum, faucibus erat non scelerisque aliquam quisque curae congue lacinia blandit, maecenas nisi velit himenaeos metus curae habitant aenean aenean, dui aliquet malesuada, hac porta scelerisque, sollicitudin imperdiet taciti volutpat congue risus sem mattis rhoncus aenean curae augue, luctus condimentum vivamus venenatis tempus congue, vehicula amet diam potenti congue aenean felis dui malesuada dui porttitor lobortis, ad consectetur ultrices aliquam convallis est imperdiet orci suscipit, molestie facilisis volutpat lorem volutpat, rutrum sagittis lacinia integer nulla quisque donec nec risus orci, posuere purus dapibus eget sapien porta, inceptos cursus aptent porta ipsum pulvinar velit lacus.
Code used for this page
import React, { forwardRef, useState, useRef } from "react"
import ScrollProgressRead from "react-scroll-progress-read"
import { getParagraph } from "../../helpers/lorem"
// forward ref to p element
const Main = forwardRef(({ txt }, ref) => (
<p dangerouslySetInnerHTML={{ __html: txt }} ref={ref} />
))
const Container = () => {
const mainTxt = useRef()
const [txt, setText] = useState(getParagraph(700))
const addText = () => setText(`${getParagraph(200)}<br /><br />${txt}`)
return (
<>
<div
style={{ margin: 0, padding: 0, position: "fixed", left: 0, top: 0 }}
>
<ScrollProgressRead refTarget={mainTxt} />
</div>
<button type="button" onClick={addText}>
Add text to paragraph
</button>
<div style={{ marginTop: "20px" }}>
<Main txt={txt} ref={mainTxt} />
</div>
</>
)
}
export default Container