jquery - 两个滚动条的问题?

标签 jquery css onclick position

跟进 post ,我做了一个测试,但还是有点问题——点击显示图片时,页面有两个滚动条。

我不需要显示图片时的背景滚动条,我只需要图片容器上的滚动条。

如何在不让页面跳动的情况下隐藏背景滚动条?

CSS,

#container-image {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow-x: auto;
    overflow-y: scroll;
    z-index:100;
}

HTML,

<p>Please scroll down until you see the click button</p>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<a href="#" class="get-photo">click</a>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

<div id="container-image" style="display:none">
    <ul id="items-image">
        <li><img src="winnie-the-pooh-2011-4.jpg"/></li>
    </ul>
</div>

jquery

$(document).ready(function(){
        $('.get-photo').click(function(){

            var object = $(this);
            var object_path = object.attr('href');
            var scroll_top = $(window).scrollTop();
            //alert(object_path);
            $('#container-image').show();
            return false;
        });

    });

这是测试page .

编辑:

刚刚设法隐藏了 body 滚动条,它适用于所有接受 IE8 的浏览器 - 我该如何修复 IE??

$(document).ready(function(){
        $('.get-photo').click(function(){
            $('body').css('overflow', 'hidden');
            var object = $(this);
            var object_path = object.attr('href');
            var scroll_top = $(window).scrollTop();
            var height_document = $(document).height();
            //alert(object_path);

            $('#background-photo').css({

                height:height_document + 'px',
                display:'block'

            });

            $('#container-image').show();
            return false;
        });

        $('#items-image img').click(function(){

            var object = $(this);
            $('body').css('overflow', 'auto');
            $('#container-image').hide();
            $('#background-photo').hide();
            return false;
        });

    });

编辑:

修复了 IE8:

$('body,html').css('overflow', 'hidden');

最佳答案

在显示图像时在 body 上设置 overflow: hidden 以隐藏滚动条:

$('body').css('overflow', 'hidden');

关于jquery - 两个滚动条的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299495/

相关文章:

javascript - 我如何使用 JQuery 为按钮标签设置类似过渡的计数器

css - 多个 div 向下环绕,跨越页面的 100% 宽度,宽度是动态的,并且同样环绕

javascript - facebook 按钮不调用 onClick() - ReactJS

android - 可点击的 TextView 不起作用

javascript - 从 Iframe 向父级发送数据适用于 Firefox,但不适用于 Safari : example included

javascript - Slick Carousel css 淡入淡出过渡不适用于第一个 slider

javascript - 同位素插件 : How to use the imagesLoaded option?

css 固定 div 在左边

javascript - jquery 不支持字符串变量

html - 重叠 td 与不同的背景