3

我正在尝试使用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. 通过单击并按住滚动条向上滚动(从一直向下)时,一旦到达固定项目的位置,它就会不稳定

我认为我的 html 和 css 非常标准,没有什么特别之处。这种行为是由于我的代码还是插件中的错误?

4

3 回答 3

3

我已经为你更新了你的小提琴:

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

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

将 auto left 属性应用于您的上下文元素似乎已修复它:)

于 2013-06-03T15:34:51.023 回答
0

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

我禁用了你用来使“我不应该移动”-div 向右和距离顶部 45px 的 javascript。您可以仅使用 css 轻松完成此操作。使用固定位置并给 div 顶部的边距。

第二个问题是你试图修复 div 的孩子。父级仍然相对定位。

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

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

编辑:如果我只是粘贴修改后的小提琴网址,它会起作用吗?=) http://jsfiddle.net/kspA8/16/

Edit2:我刚刚查看了 ScrollToFixed 插件演示。看来您毕竟可能需要不同的答案..对不起!

于 2013-06-03T15:31:44.140 回答
0

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

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

于 2013-06-04T08:50:42.143 回答