jQuery slideToggle()不显示:before元素
jQuery slideToggle() not showing :before element
如果我只使用css,那么它会在{}元素之前显示。nav-main:但使用jQuery时,它不会切换该元素,并始终保持隐藏
注意:这是发生在手机上(在Android Chrome测试)
jQuery$('.menu-toggle').click(function() {
$('.nav-main').slideToggle(100);
$(this).toggleClass('current');
});
SCSS
.nav-main{
@include breakpoint(max-desktop){
position: absolute;
top: 100%;
left: 0;
min-width: 30%;
width: auto;
display: block;
z-index: 9999;
padding:1px;
background-color: $peter-river;
box-shadow: 5px 5px 10px 0 rgba(0,0,0,0.15);
&:before{
position: absolute;
left: 20px;
top: -13px;
content: "";
display: block;
width: 0;
height: 0;
border-left: 13px solid transparent;
border-right: 13px solid transparent;
border-bottom: 13px solid $peter-river;
}
}
}
您的:before
元素在.nav-main
元素的边界之外,这可以从top
属性设置为-13px
的事实中看出。
jQuery slideToggle()
设置overflow:hidden
,所以这将隐藏框外的任何内容。
一个解决方案(hacky)将overflow:visible!important
设置在.nav-main
在CSS或在jQuery中运行一个回调函数设置的溢出可见通过css()
方法:
$('.menu-toggle').click(function() {
$('.nav-main').slideToggle(100, function(){
$(this).css('overflow', 'visible');
});
$(this).toggleClass('current');
});
相关文章:
- 无法覆盖CSS伪元素:before
- jQuery:如何选择所有具有:before或:after的伪元素
- 选择一个 CSS 选择器来动态设置元素的样式 ::before
- 如何在jquery中使用.before时对元素进行动画处理
- .before插入多个元素
- 使用 JavaScript 自动获取 ::before 元素的信息
- 如何使用 javascript 使用 ::before 选择器为元素设置高度
- 如何通过Javascript更改伪:before元素的内容值
- 如何删除使用before()方法添加的元素
- 有没有任何方法可以重置元素的CSS规则:after/:before
- 一种通过程序在元素及其元素之间传递不相关属性的方法:before
- CSS伪元素上的事件侦听器,例如::after和::before
- Jquery/JS-如何切换元素的:after,:before
- CSS或jQuery以访问元素的父级:before
- css伪元素的替代解决方案:IE6/7的before
- 检测元素的更改并将其设置回before
- 定义一个类's .click - Before元素有这个类
- 动态地对:before元素应用样式
- 基于php变量更改:before元素的背景颜色
- jQuery slideToggle()不显示:before元素