当div在另一个下面时添加类

时间:2014-10-15 21:57:10

标签: jquery css

当我在另一个div下滑动时,我试图将一个类添加到div中。请参阅我的简单时间滑块示例。我想在div中添加一个类,它会将字体加到时间滑块下方,就像悬停状态复制Mac Dock放大悬停效果一样。还想在红色滑块下的时间的顶部和底部两次添加一个类。

http://codepen.io/pixelchef/pen/Bpghm

<div class="times">
      <div class="datepast hour">
               - 9 am
            </div>
         <div class="datepast hour">
               - 10 am
            </div>
         <div class="datepast hour">
               - 11 am
            </div>
         <div class="datepast hour">
               - 12 am
            </div>
                <div class="datepast hour">
               - 1 pm
            </div>

1 个答案:

答案 0 :(得分:0)

如果我的问题正确,你想知道如何知道div何时徘徊在另一个问题上。 我做了一个小小的工作,可能会为你工作。

JSFIDDLE:LINK

我有一个很大的问题,就是找到一个position: fixed容器并将其位置放在一个可滚动的div中,但是因为它的所有外观我想我会给你一个答案,至少在中间显示粗体文字一个容器。

请注意,重要的部分发生在$("#Background").scroll(),其他一切只是为了看起来。

HTML:

<div id="Background" class="bg">
    <div id="list"></div>
    <div id="boldarea"></div>
</div>

JQuery的:

var list = [];

for (var i = 0; i < 24; i++) {
    list.push(i + "am"); 
}

var elements = ""; 
list.forEach(function (entry, index) {
    elements += "<div class=\"text\">" + entry + "</div>"; 
});
$("#list").html(elements);

//SCROLL EVENT 
$("#Background").scroll(function () {
    $("div .text").each(function (index, entry) {
        console.log($("#boldarea").offset().top);
        if ($(entry).position().top > (($("#boldarea").position().top/2) - 8) && 
            $(entry).position().top < (($("#boldarea").position().top/2) + 8) ) 
        {
            $(entry).css("font-weight", "bold");
        } 
        else 
        {
            $(entry).css("font-weight", "normal");
        };
    }); 
});
而不是 $(entry).css("font-weight", "bold"); 你可以写 $(entry).addClass("myClass"); 更具动感的造型。

CSS:

#boldarea {
    position:fixed;
    top: 50%;
    height: 12px;
    width: 35%;
    background-color: red;
    opacity: 0.5;
}
.bg {
    position:absolute;
    height: 50%;
    width: 50%;
    left: 25%;
    top:25%;
    background-color: lightgrey;
    overflow-y: scroll;
}
.text {
    position: relative;
    color: black;
    font-weight: normal;
}