我正在寻找一个插件(我猜类似于粘性标题),它可以在可滚动内容上创建框阴影效果(当您向下滚动时)。
我发现了一种使用纯CSS技巧的现有技术,它正是我所需要的(使用
background-color
属性)
但是,可滚动内容位于阴影上方,我需要它位于阴影下方。
是否有任何插件可以创建相同的效果,但使用带有阴影和动态不透明度的内部div
或类似的东西?
box-shadow
并根据scrollTop值动态应用它
onscroll
事件。也许是这样的:
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');
};
演示:
UPD.我认为OP更多想要的是如果div可以向上滚动的话在顶部显示阴影。在这种情况下,就更简单了:
document.querySelector('div').onscroll = function() {
this.classList[this.scrollTop > 20 ? 'add' : 'remove']('shadow-top');
};
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;
}
<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>