Usage with ref for target react element
Use the component with the props "refTarget" for target element.
example:
<ScrollProgressRead refTarget={refContainer} />
Habitant porttitor sagittis netus, hac porttitor lobortis vitae viverra, malesuada scelerisque molestie, mauris ultricies urna arcu maecenas fames iaculis sapien suscipit ultricies mattis, nostra elementum etiam potenti blandit, gravida est lorem morbi, sociosqu luctus habitasse himenaeos gravida purus ut, auctor augue congue a a vel quis. Tincidunt pretium mollis, dolor molestie tempor tempus netus tristique commodo cras malesuada suspendisse diam, tortor proin, hendrerit mollis nullam aliquam lacus sit non lacinia tellus, sagittis velit luctus dolor eu sem, nibh odio cubilia nec malesuada consequat, dapibus eget euismod neque orci senectus donec, condimentum torquent tristique, pretium mauris venenatis, rutrum consectetur viverra integer posuere volutpat aptent turpis vitae, enim rhoncus cras, convallis rhoncus mattis aenean vulputate dictum, metus in tellus integer suscipit, praesent adipiscing iaculis tristique aliquam pellentesque donec nisl pretium, elit quis gravida class conubia inceptos cursus, iaculis laoreet justo consequat feugiat erat rhoncus sit aliquam congue donec velit, urna dolor habitant dui mauris nullam elit bibendum viverra justo nec, ut sem, aliquam habitant auctor fames interdum nullam dictum nostra praesent odio, donec leo justo torquent cubilia rhoncus egestas faucibus iaculis senectus scelerisque, sit auctor scelerisque consectetur dapibus curabitur sed nunc suscipit donec nam lacinia, platea quisque egestas pharetra venenatis iaculis tempor etiam, orci conubia massa ante, tempus pulvinar feugiat est purus egestas justo etiam purus eleifend feugiat nostra, nisl facilisis ut pretium gravida maecenas vehicula mattis, magna convallis senectus fames convallis etiam semper eu. Vivamus dapibus libero conubia morbi convallis at erat, nisi inceptos phasellus elit tincidunt nunc praesent posuere aliquet, senectus ante mauris semper non feugiat etiam lacinia risus turpis, maecenas blandit, fringilla magna quam fames nulla sagittis iaculis, elit rutrum etiam dictum lobortis proin litora dictum ultricies auctor, convallis vitae, posuere hac augue aliquet condimentum sollicitudin lectus quis pharetra cubilia id taciti, nisi tellus augue bibendum torquent arcu justo, augue laoreet primis eros vivamus, volutpat libero arcu hac ullamcorper dolor at justo, orci suspendisse cras in justo aptent, per cursus nibh nunc dictumst cubilia proin diam, lorem sodales hac facilisis dictum, maecenas hac condimentum at pretium donec ultricies eros eget nunc, ligula gravida magna a aliquam urna, cursus accumsan ut suscipit dictumst gravida aliquam, nam etiam scelerisque, nullam luctus nullam vestibulum odio varius fringilla, ut interdum pretium viverra id ipsum ipsum. Volutpat imperdiet mauris sollicitudin consectetur, scelerisque dapibus turpis phasellus nam, lacus leo eget potenti, eros faucibus senectus tempus, orci id elit mi volutpat, augue commodo dolor molestie ac magna ut sollicitudin lectus donec, potenti pharetra ac porta aliquam sed fusce tincidunt himenaeos dolor et, blandit amet, tempor gravida condimentum lectus, porta ad ornare, habitant blandit quisque, fermentum proin habitasse magna, proin aliquet curabitur arcu euismod litora, vivamus at egestas suspendisse sociosqu eleifend aliquet metus eu class placerat, etiam amet aenean malesuada sed interdum aliquam, sociosqu placerat senectus ligula elementum eget tellus a, tortor nisi diam turpis curabitur orci turpis dolor risus habitant, lobortis sem suscipit a turpis consequat ut purus, nullam sit conubia condimentum netus senectus ornare sociosqu nibh non tempor, consectetur nisi ante, urna mollis eros lorem ipsum arcu viverra placerat quisque litora quisque, gravida nam pharetra arcu vehicula viverra, aenean pharetra in donec blandit a sit pellentesque fames inceptos, donec maecenas, nostra curabitur et suspendisse dictum justo ante, quisque lacinia quisque malesuada fermentum ultricies ornare vehicula hendrerit massa, hendrerit taciti euismod dapibus laoreet sodales dapibus platea venenatis taciti fringilla, eu inceptos viverra ipsum imperdiet quisque consequat dictumst dictum praesent velit quis, tristique sapien primis mollis, amet porta sagittis fringilla massa duis etiam primis ad, sed nunc adipiscing et rhoncus, vel ullamcorper elementum fames sem in habitasse etiam maecenas sed libero egestas, accumsan posuere dui potenti neque mauris commodo ullamcorper lorem in ad, litora magna varius venenatis consequat aenean curabitur tempor vestibulum, sodales neque sem eleifend torquent dui fusce, fringilla tellus senectus, eu ad dictum viverra pulvinar conubia condimentum hac scelerisque dapibus, turpis nec magna dolor arcu hac lobortis curabitur conubia vulputate augue sociosqu, mollis felis tincidunt, curabitur duis commodo, hac conubia ultricies habitasse ultricies magna risus sapien urna adipiscing velit, nostra ad venenatis nostra dictumst odio senectus lobortis facilisis vel amet, nunc lobortis sollicitudin neque consectetur tortor auctor tempor proin semper diam, luctus curabitur blandit mollis risus aliquam ipsum, blandit aliquet duis conubia quam habitasse eleifend.
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