scrollToFixed - 奇怪的滚动问题

时间:2013-06-03 14:03:03

标签: javascript jquery html css css-position

我正在尝试使用ScrollToFixed进行简单的固定滚动操作,但我遇到了一些奇怪的行为

我准备了一个显示以下问题的jsfiddle

HTML:

<div class="row-fluid">
    <div id="car_left_col" class="span2">left</div>
    <div id="car_center" class="span8">
        <div class="car_main thumbnail">
            <div class="car_cover">
                <img alt="" src="http://www.autopulze.com/wp-content/uploads/2012/07/Rolls-Royce-Silver-Ghost-the-Best-Car-in-the-World.jpg">
            </div>
            <hr>
            <div class="car_page_creator"></div>
        </div>
        <div class="car_talk">here are the comments for the car</div>
    </div>
    <div id="car_right_col" class="span2">
        <div class="car_vote test_fixed">I should not move</div>
    </div>
    <div class="long"></div>

的CSS:

.long {
    height: 10000px;
}
#car_right_col {
    position: relative;
}
.car_main {
    position: relative;
    padding: 0;
}
.car_cover {
    width: 100%;
    position: relative;
}
.car_cover img {
    width: 100%;
}
.test_fixed {
    position: static;
}
.car_vote {
    position: relative;
}

JS:

$(document).ready(function () {
    $('.test_fixed').scrollToFixed({
        marginTop: 45,
        limit: $('.car_page_creator').offset().top
    });

});
  1. 当完全向下滚动时,注意一个水平滚动条,将页面向右拉伸到右边
  2. 我认为这与第一个问题有关,要修复的项目.test-fixed在向下滚动时具有非常大的left属性
  3. 通过单击并按住滚动条向上滚动(从完全向下),一旦到达固定项目的点,它就会不正常
  4. 我认为我的html和css几乎没有什么特别的标准..这个行为是由于我的代码还是插件中的错误?

3 个答案:

答案 0 :(得分:3)

我已经为您更新了小提琴:

http://jsfiddle.net/kspA8/17/embedded/result/

.test_fixed {
  position: static;
  left: auto !important;
}

将自动左侧属性应用于上下文元素似乎修复了它:)

答案 1 :(得分:0)

这是我在stackoverflow上的第一个答案,所以我不确定我这样做是否正确=)。

我禁用了你用来制作'我不应该移动'-dg的javascript向右和从顶部45px。您只需使用css即可轻松完成此操作。使用位置固定并给div一个上边距。

第二个问题是你试图修复div的孩子。父母仍然是亲戚。

用这段代码替换原来的#car_right_col。希望它适用于你!

#car_right_col {
   margin-top:45px;
   position: fixed;
   right:0px;
}

编辑:如果我只是粘贴修改过的小提琴网址会有效吗? =)http://jsfiddle.net/kspA8/16/

Edit2:我刚刚查看了ScrollToFixed插件演示。看来你可能需要一个不同的答案..抱歉!

答案 2 :(得分:0)

我在github中打开了一个问题,我必须说答案很快

解决方法是删除右列之外的元素.test-fixed并使其与中心div处于同一级别