javascript onmouseover/omouseout停留在前一个内容中,直到悬停/触发下一个内容
javascript onmouseover/onmouseout stay in previous content until hover / trigger the next one
我是javascript的初学者。对于这个项目,我们不能在这里使用jQuery。我喜欢在右下角有矩形的4个单元格作为缩略图,它们将在悬停时分别触发显示不同的图像。
<div id="resistorContent">
<section id="resistorDetail1" class="1stdetailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic1.jpg" alt=""></section>
<section id="resistorDetail2" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic2.jpg" alt=""></section>
<section id="resistorDetail3" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic3.jpg" alt=""></section>
<section id="resistorDetail4" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic4.jpg" alt=""></section>
<span class="closeButton"><a id="close" onclick="hideContent('resistorContent')">X</a></span>
<ul>
<li onmouseover="showDetailContent('resistorDetail1')" onmouseout="hideDetailContent('resistorDetail1')"></li>
<li onmouseover="showDetailContent('resistorDetail2')" onmouseout="hideDetailContent('resistorDetail2')"></li>
<li onmouseover="showDetailContent('resistorDetail3')" onmouseout="hideDetailContent('resistorDetail3')"></li>
<li onmouseover="showDetailContent('resistorDetail4')" onmouseout="hideDetailContent('resistorDetail4')"></li>
</ul>
</div>
</section>
<script type="text/javascript">
function showDetailContent(target) {
document.getElementById(target).style.display = "block";
}
function hideDetailContent(target){
document.getElementById(target).style.display = "none";
}
</script>
我想做一些改进,因为这些单元现在依赖于关闭链接的<section>
的onmouseout
,以便它可以重新加载下一个<section>
。如果我将鼠标从单元格移开,它将显示一个空白页面。
如何编写javascript,使其保持在当前<section>
,并在悬停在其他单元格上时仅加载其他<section>
?
提前感谢
http://jsfiddle.net/63L72trx/10/
让我们把你想做的分解成一个简单的句子:
"当我显示另一个项目时,我想隐藏其他可能显示或不显示的项目。"
因此,让我们移除隐藏元素的onmouseout
,并强制执行"重置"状态,以确保每当我们从onmouseover
中显示项目时,所有项目都被隐藏。
<div id="resistorContent">
<section id="resistorDetail1" class="1stdetailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic1.jpg" alt=""></section>
<section id="resistorDetail2" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic2.jpg" alt=""></section>
<section id="resistorDetail3" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic3.jpg" alt=""></section>
<section id="resistorDetail4" class="detailContent"><img src="http://d3d71ba2asa5oz.cloudfront.net/40000483/images/pic4.jpg" alt=""></section>
<span class="closeButton"><a id="close" onclick="hideContent('resistorContent')">X</a></span>
<ul>
<li onmouseover="showDetailContent('resistorDetail1')"></li>
<li onmouseover="showDetailContent('resistorDetail2')"></li>
<li onmouseover="showDetailContent('resistorDetail3')"></li>
<li onmouseover="showDetailContent('resistorDetail4')"></li>
</ul>
</div>
</section>
<script type="text/javascript">
var children = document.querySelectorAll('#resistorContent > section[id]');
function showDetailContent(target) {
// Simply loop over our children and ensure they are hidden:
for (var i = 0, child; child = children[i]; i++) {
child.style.display = 'none';
}
// Now, show our child we want to show
document.getElementById(target).style.display = 'block';
}
</script>
这是一把正在工作的小提琴:http://jsfiddle.net/rgthree/63L72trx/12/
相关文章:
- 滚动到容器中的下一个元素-几乎到了
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- AngularJS&JSON-从Previous&下一个对象
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 来自文档或下一个静态父级的事件委派
- angularjs移除焦点上的活动类并添加到下一个项目
- 禁用旋转木马中的下一个按钮和上一个按钮
- 当按下一个键时,请多次按下不同的键
- 如何在cycle2.js中悬停img时同时显示上一个/下一个按钮
- javascript onmouseover/omouseout停留在前一个内容中,直到悬停/触发下一个内容
- 使悬停保持悬停状态,直到下一个链接
- 悬停显示下一个“ul”的“李”
- 如何检测鼠标的下一个悬停
- 将鼠标悬停在元素上动画化下一个元素-如何删除内联JS
- 旋转木马与图像的下一个/上一个悬停
- 在悬停时切换下一个元素
- 如何影响图像悬停上一个和下一个图像
- 停止下一个鼠标悬停事件的触发,直到内部函数完成