有很多这样的词:test1test2test3test4test5test6test7test8test9test10test11。。。
每个单词都与多个例句相关联。我希望它们在光标覆盖单词之前被隐藏。这是我的代码。
演示:https://jsfiddle.net/kyubyong/umxf19vo/
HTML:
<a><b>test1</b></a>
<div class="divs">
<li>This is the first example</li>
<li>This is the second example</li>
<li>This is the third example</li>
</div>
<a><b>test2</b></a>
<div class="divs">
<li>This is the first example</li>
<li>This is the second example</li>
<li>This is the third example</li>
</div>
CSS
a:hover
{
background-color: lightgray;
}
.divs
{
display: none;
}
a:hover + .divs
{
display: block;
position: absolute;
background-color: lightgray;
width: 100%;
padding: 5px;
}
问题是,当原始行不止一行时,例句块覆盖了底线中的单词。我想把它们写下来,这样例句就不会涵盖它们了。
这里,我使用了一个jQuery mouseover函数
$(document).ready(function(){
$(".test").mouseover(function(){
if($(".test").find(".divs").hasClass("divs-hover")){
$(".test").find(".divs").removeClass("divs-hover");
$(".test").find("a").css("background-color","transparent");
}
$(this).find(".divs").addClass("divs-hover");
$(this).find("a").css("background-color","lightgray");
})
$(".test").mouseleave(function(){
$(".test").find(".divs").removeClass("divs-hover");
$(".test").find("a").css("background-color","transparent");
})
})
我不知道你是否可以只用css来制作,但是你可以用这种方式来制作
https://jsfiddle.net/umxf19vo/14/
如果你在例句块上加了一个页边空白,那么它就会下降
a:hover + .divs
{
display: block;
position: absolute;
background-color: lightgray;
width: 100%;
padding: 5px;
margin-top: 20px;
}
更新的小提琴链接https://jsfiddle.net/umxf19vo/1/
既然您使用的是Javascript、超文本标记语言和CSS标记,我假设您不介意使用Javascript来解决这个问题。问题发生的原因是因为您在上使用了
位置:绝对
相反,你可以做的是先处理所有的标题,然后处理所有的列表,然后使用javasript选择要显示/隐藏的合适元素。下面你可以找到一个如何使用jQuery的例子。
$('div').hover(function() {
$($(this).attr("target")).toggle();
}, function() {
$($(this).attr("target")).toggle();
});
div {
display: inline;
background: lightgray;
}
div:hover {
background: darkgray;
}
.hidden {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div target="#test">Test</div>
<div target="#animals">Animals</div>
<div target="#fruits">Fruits</div>
<div target="#vegetables">Vegetables</div>
<div target="#cars">Cars</div>
<div target="#countries">Countries</div>
<div target="#continents">Continents</div>
<div target="#sports">Sports</div>
<div id="test" class="hidden">
<ul>
<li>Test 1</li>
<li>Test 2</li>
<li>Test 3</li>
</ul>
</div>
<div id="animals" class="hidden">
<ul>
<li>Lion</li>
<li>Tiger</li>
<li>Gazzele</li>
</ul>
</div>
<div id="fruits" class="hidden">
<ul>
<li>Apple</li>
<li>Banana</li>
<li>Orange</li>
</ul>
</div>
<div id="vegetables" class="hidden">
<ul>
<li>Potatoe</li>
<li>Tomatoe</li>
<li>Lettuce</li>
</ul>
</div>
<div id="cars" class="hidden">
<ul>
<li>Ferrari</li>
<li>Porsche</li>
<li>Audi</li>
</ul>
</div>
<div id="countries" class="hidden">
<ul>
<li>United States</li>
<li>Canada</li>
<li>Mexico</li>
</ul>
</div>
<div id="continents" class="hidden">
<ul>
<li>America</li>
<li>Europe</li>
<li>Africa</li>
</ul>
</div>
<div id="sports" class="hidden">
<ul>
<li>Tennis</li>
<li>Football</li>
<li>Basketball</li>
</ul>
</div>
问题内容: 我一直在寻找一个很好的技巧,使隐藏/显示内容或仅具有CSS而没有javascript的列表。我已成功执行此操作: 并且它正在工作,但没有达到应有的效果。这是问题所在:显示内容时,您可以通过单击“页面上的任何位置”将其隐藏。如何禁用它?如何通过单击“隐藏”隐藏内容“仅”?先感谢您! 问题答案: 我不会使用复选框,而是使用您已经拥有的代码 CSS HTML 这样,仅在单击hide元素时隐藏
问题内容: 我想显示一个带有控件的基本html表,以切换其他列的显示/隐藏: 因此,默认情况下,列1和列2将是唯一显示的列-但是,当您单击列1时,我希望1a和1b切换,与列2和2a和2b相同。我可能最终会有更多的列和很多行- 因此,当我进行测试时,任何JavaScript循环方法都太慢而无法使用。 似乎足够快的唯一方法是设置一些CSS,如下所示: 然后在表标题单元格上设置onClick函数调用,这
问题内容: 在我的脚本中有三个div。我想在第一行悬停时显示div ,而在第二行悬停时显示。否则,我想默认显示div 。 但它永远不会显示带有的div 。 问题答案: 你需要 原始CSS中的问题是in css选择器启动了一个全新的选择器。它没有结合..所以意味着和。您将其设置为始终对所有元素都隐藏。
问题内容: 我想在显示旨在在建筑大厅中显示信息的网页时隐藏光标。它根本不需要是交互式的。我尝试使用cursor属性和透明的光标图像,但是没有使它起作用。 有人知道这是否可以做到吗?我想这对于不知道他在哪里单击的用户来说可以看作是安全威胁,所以我不太乐观……谢谢! 问题答案: 使用CSS: 一个例子: 要在Javascript中的元素上设置此属性,可以使用属性: 如果要对整个身体进行设置: 但是,请
$('#abc').addClass('slideout').removeClass('slidein').delay(200).css('display','none'); 执行以上语句,slideout 效果显示了,但是 display:none 也执行了,但后又显示了。。。
问题内容: 对于我正在做的网站,我想加载一个div,然后隐藏另一个,然后有两个按钮可以使用JavaScript在div之间切换视图。 这是我当前的代码 替换div2的第二个功能不起作用,但第一个功能起作用。 问题答案: 如何显示或隐藏元素: 为了显示或隐藏元素,请操纵元素的style属性。在大多数情况下,您可能只想更改元素的属性: 或者,如果您仍然希望元素占用空间(例如,如果您要隐藏表格单元格),