I started with bootstraptour and it was pretty good on desktop and it is even fine with ajax DOM change while tour. Shame on me I did not test my site after adding tour on mobile then I announced jeviz.com on hackernews, a user commented about scrolling issue on mobile. Tour did not automatically scrolled down on mobile and it also prevent me scroll-down manually. Maybe it is because of dynamic content issue and I tried to fix it without success so I searched for another tour library which was intro.js
Intro.js at first seemed to be more polished than bootstraptour and I liked how it highlights on target element and gray out remaining parts. It has problems with ajax DOM change so I changed my tour without using ajax. It worked good on chrome then I tested on firefox and internet explorer, both with same issue: first step was fine but after that, in second step and so on tour popup and most of the site content turned to be invisible as shown below:
https://s13.postimg.org/4xd0f731j/introjs2.png
Then I googled for another alternative and found Hopscotch which is Linkedin open source project. It is very solid with best scrolling experience. It does not support DOM changes but found a workaround in issue page https://github.com/linkedin/hopscotch/issues/56
my tour code: http://www.jeviz.com/static/js/tour.js