框阴影在输入元素上消失
Box-shadow disappears over input elements
我尝试在滚动时为div添加框影。我只是去尝试,一切都很好,除了框阴影不应用于文本区域或文本字段…我正在使用twitter-bootstrap这是我尝试过的…
$('#target').scroll(function() {
var scrollTop = $(this).scrollTop();
if(scrollTop > 1) {
if(!$(this).hasClass('scrolled')) {
$(this).addClass('scrolled');
}
} else {
$(this).removeClass('scrolled');
}
});
http://jsfiddle.net/xVdYv/1/请告诉我怎样才能克服这个缺点……
用这种方式修改你的CSS
.scrolled:before {
content: "";
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
height: 50px;
pointer-events: none;
box-shadow: inset 0px 20px 25px -20px #000000;
}
这将在具有z-index
的定位伪元素中应用阴影:最终效果是阴影与窗体控件重叠
作为另一种解决方案,您可以简单地使用线性梯度作为.scrolled:before
的背景
。
.scrolled:before {
...
background: linear-gradient(to bottom, rgba(50,50,50, .25) 0,
rgba(50,50,50, 0) 50px);
}
正如Fabrizio所说的那样,伪元素将是添加此演示的一种方式。
我可能会选择这样的东西:http://jsfiddle.net/xVdYv/6/
.scrolled {
position: relative;
}
.scrolled:before {
content: "";
position: absolute;
top: 0;
left: 0;
z-index:10;
width: 100%;
height:1px;
box-shadow: 0px 0px 5px #000000;
}
不使用插入框阴影,只是设置一个1px的高度意味着你仍然可以与表单元素交互,而阴影是在它上面。否则50px的阴影会阻塞指针事件
如果你想在textarea和input上添加阴影,你需要告诉浏览器输入和textarea也需要一个阴影
.scrolled,.scrolled input,.scrolled textarea{
box-shadow: inset 0px 20px 25px -20px #000000;
}
相关文章:
- 当实现javascript倒计时时,其他html元素将消失
- 复选框元素在未选中时从serialize()中消失
- Selenium-webdriver (Java Script) 等待元素消失
- 空的数组绑定元素在页面加载时消失
- 元素在使用 jQuery 对相对包装宽度进行动画处理时消失
- 按钮会因Chrome中同级元素上的动画而消失
- 如何防止动态添加的元素在页面重新加载后消失
- Javascript在秒消失时显示DIV元素,并在此之后隐藏栏的选项
- 使用 JavaScript 使表单元素消失
- HTML5 画布元素消失
- 语义 UI 模态导致我的元素在关闭后从 DOM 中消失
- 为什么当我对其父元素进行动画处理时,我的 UL 消失了
- 当元素消失时,不会触发鼠标输出
- 使元素在页面底部消失
- 如何使固定的元素在非固定元素后面消失
- Javascript - 如果选择了某个选项,则使元素消失
- 元素在淡入 () 后立即再次消失
- 消失元素上的OnClick事件
- 正在使用jQuery UI显示带有模式消息的消失元素
- fullPage.js中的消失元素