Endless Loading:
99.9999999999...%
A simple endless progress number generator.
npm install endless-progress
import { Progress } from 'endless-progress'
const p = new Progress({
initProgress: 0,
endProgress: 1,
distance: 5000
})
// Start the progress
p.start()
// Get the progress number
console.log(p.progress)
// Stop the progress, make the progress to the end
p.end()
Progress
is a basic class that can generate an endless progress from initProgress
to endProgress
by distance
per interval.
start()
: Start the progress.end()
: Stop the progress, make the progress to the end.progress
: Get the progress number.isRunning
: Check if the progress is running.
MultistepProgress
is a class that can generate an endless progress with multiple steps.
import { MultistepProgress } from 'endless-progress'
const mp = new MultistepProgress({
initProgress: 0,
steps: [
{ subProgress: 0.5, distance: 5000 },
{ subProgress: 1, distance: 5000 }
]
})
// Start the progress
mp.start()
// Set the progress to the next step and pause
mp.next()
// Start the progress
mp.start()
// Stop the progress, make the progress to the end
mp.end()
start()
: Start the progress.end()
: Stop the progress, make the progress to the end.next()
: Set the progress to the next step and pause.progress
: Get the progress number.isRunning
: Check if the progress is running.
I recommend setting the
endProgress
to1
to make the progress number in the range of[0, 1]
.
For example, in Vue, you can use reactive
to package the progress number to make it reactive.
import { reactive } from 'vue'
import { Progress } from 'endless-progress'
const p = reactive(new Progress({
initProgress: 0,
endProgress: 1,
distance: 5000
}))
p.start()
Then you can use p.progress
in the template.
<el-progress :percentage="p.progress * 100" />
Where:
-
$P$ is the progress number at time$t$ . -
$P_{init}$ is the initial progress number. -
$P_{end}$ is the end progress number. -
$d$ is the distance per interval. -
$t$ is the diff time from the start.