May you can add a flag to know if your animation is started or not and keep the event binding.
Like something like that :
var _animated = false;
var Slideshow = {
start: function () {
if (_animated) return;
_animated = true;
// start slideshow
},
stop: function () {
if (!_animated) return;
_animated = false;
// stop animation
}
};
$(window).on('scroll', function () {
if ($('.tour-slider').visible(true)) {
Slideshow.start();
} else {
Slideshow.stop();
}
});