Exit intent detection library. INCLUDING support for mobile and desktop.
DESKTOP-behaviour:
=> trigger intent if mouse leaves body ('mouseleave'-event)
=> trigger after user has been inactive for showAfterInactiveSecondsDesktop
seconds
MOBILE-behaviour:
=> trigger ONLY after user has been inactive for showAfterInactiveSecondsMobile
seconds
import exitIntent from 'exit-intent-mobile'
// Initialise
const removeExitIntent = exitIntent({
maxDisplays: 99999, // default 99999
eventThrottle: 100, // default 200
showAfterInactiveSecondsDesktop: 60, // default 60
showAfterInactiveSecondsMobile: 40, // default 40
showAgainAfterSeconds: 10, // default 10
onExitIntent: () => {
console.log('exit-intent triggered')
},
debug: false,
})
// Destroy
removeExitIntent()
maxDisplays
(default 99999)
maximum number of times to trigger.
eventThrottle
(default 200)
event throttle in milliseconds.
onExitIntent
(default no-op function)
function to call when an exit intent has been detected.
showAfterInactiveSecondsDesktop
(default 60 seconds)
If user does NOT move mouse or scroll for nr-of-seconds, onExitIntent
-function will be called.
To disable the timer, pass undefined.
showAfterInactiveSecondsMobile
(default 40 seconds)
If user does NOT move mouse or scroll for nr-of-seconds, onExitIntent
-function will be called.
To disable the timer, pass undefined.
showAgainAfterSeconds
(default 10 seconds)
If exit-intend was trigger, pause nr-of-seconds before showing it again. Good to NOT annoy the user.
class ExitIntendComponent extends React.Component {
componentDidMount() {
this.exitIntend = exitIntent({
maxDisplays: 99999,
eventThrottle: 100,
showAfterInactiveSecondsDesktop: 60,
showAfterInactiveSecondsMobile: 30,
onExitIntent: () => {
this.setState({ show: true })
},
debug: false,
})
}
componentWillUnmount() {
this.exitIntend() // IMPORTANT: clear timeouts
}
}
MIT
originally based on https://github.com/danhayden/exit-intent (and https://github.com/richriscunha/Exitent)