mjackson / shadowbox

A beautiful, versatile lightbox for photos and videos
http://shadowbox-js.com/
297 stars 110 forks source link

How to turn off and hide main/top window scrollbars? #26

Open bandzgla opened 12 years ago

bandzgla commented 12 years ago

Like in topic, when im using shadowbox with iframe it have scrollbars inside and in main window there is a scrollbar too, how can I turn it off, so only those from iframe would be working when its opened?

greetings!

karfau commented 11 years ago

with inspiration from there: http://stackoverflow.com/questions/8701754/just-disable-scroll-not-hide-it http://stackoverflow.com/questions/9280258/prevent-body-scrolling-but-allow-overlay-scrolling

I came to this snippet that worked for me:

    Shadowbox.init({ skipSetup: true });

    window.onload = function() {
        var $body = $('body'), $html = $('html');
        var scrollTop = 0;

        Shadowbox.setup("your selector",{
            onOpen:function(){
                if (window.innerHeight < window.outerHeight) {
                    scrollTop = ($html.scrollTop()) ? $html.scrollTop() : $body.scrollTop();
//                    $html.addClass('noscroll').css('top',-scrollTop);
                    $body.addClass('noscroll').css('top',-scrollTop);
                }
            },
            onClose:function(){
                $body.removeClass('noscroll').css('top','auto');
                $('html,body').scrollTop(scrollTop);
            }
        });
    };

(this is using the jquery-adapter,css-selector and delayed setup as documented)