【发布时间】:2015-11-11 09:56:20
【问题描述】:
我有简单的切换 div。我需要在大屏幕段落content 悬停时打开,点击时在小屏幕上。我尝试这样做:
HTML:
<div class="container">
<div class="headline">Headline exaple</div>
<p class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae quia nulla, rem harum, minima sint assumenda perferendis cupiditate rerum corporis obcaecati, quam natus repudiandae veniam dolor. Maiores commodi sequi, esse.
</p>
</div>
CSS:
.container {
width: 400px;
border: 1px solid #ccc;
border-radius: 5px;
}
.headline {
background: #ccc;
padding: 5px;
cursor: pointer;
}
.headline:hover + .content {
display: block;
}
.content {
padding: 5px;
display: none;
}
jQuery:
var isSmallWindow;
$(window).on('resize', function() {
isSmallWindow = $(this).width() < 768;
});
$('.headline').on('click', function() {
if (isSmallWindow) {
$('.content').slideToggle(300);
}
});
但它不能正常工作。当我更改窗口大小时,content 在悬停时仍然打开。我点击了headline,当我返回其原始位置的窗口时,悬停不起作用。如何解决这个问题?
【问题讨论】:
-
悬停行为由css控制,无论屏幕大小,它都会一直发生
-
你可以通过 js 添加一个类,如果它的存在阻止 css 中的悬停。
-
在悬停中删除你的css并在jquery中做。