Css滚动内容阴影效果

时间:2014-12-15 10:06:42

标签: javascript jquery html css css3

我正在寻找一个插件(类似于我猜的粘性标题),它会在可滚动内容上创建盒子阴影效果(当你向下滚动时)。

我找到an existing technique which is using pure CSS tricks,它完全符合我的需要(使用background-color属性)

然而,可滚动的内容会在上方阴影,我需要它在阴影之下。

是否有任何插件可以创建相同的效果,但使用带阴影和动态不透明度的内部div或类似的东西?

You can see the white div gets above the shaodow

2 个答案:

答案 0 :(得分:5)

您可以尝试使用box-shadow并动态应用它onscroll事件,具体取决于scrollTop值。也许是这样的:

document.querySelector('div').onscroll = function() {
    this.classList[this.scrollTop < 20 ? 'add' : 'remove']('shadow-top');
    this.classList[this.scrollHeight - this.clientHeight - this.scrollTop < 20 ? 'add' : 'remove']('shadow-bottom');
};

演示:http://jsfiddle.net/0aevh7kv/


UPD。我认为OP想要的更多内容是如果div可以向上滚动,则在顶部显示阴影。在这种情况下,它甚至更简单:

&#13;
&#13;
document.querySelector('div').onscroll = function() {
    this.classList[this.scrollTop > 20 ? 'add' : 'remove']('shadow-top');
};
&#13;
ul, li { padding: 0; margin: 0; }

div {
  height: 200px;
  border: 1px #AAA solid;
  overflow: auto;
  transition: box-shadow .2s ease;
}
div.shadow-top {
  box-shadow: inset 0 4px 10px -3px #808080;
}
&#13;
<div>
    <ul>
        <li>text cotent 1</li><li>text cotent 2</li><li>text cotent 3</li><li>text cotent 4</li><li>text cotent 5</li><li>text cotent 6</li><li>text cotent 7</li><li>text cotent 8</li><li>text cotent 9</li><li>text cotent 10</li><li>text cotent 11</li><li>text cotent 12</li><li>text cotent 13</li><li>text cotent 14</li><li>text cotent 15</li><li>text cotent 16</li><li>text cotent 17</li><li>text cotent 18</li><li>text cotent 19</li><li>text cotent 20</li>
    </ul>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

例如,您可以使用box-shadow: inset 0 0 10px #000000;http://css-tricks.com/snippets/css/css-box-shadow/