在按钮元素上而不是在图像上使用onMouseover事件时,我在使图像消失时遇到了问题。我需要它在鼠标悬停时出现,而不是在鼠标悬停时消失。以下是我的代码:
<script>
function sfunc1() {
var x = document.getElementById('imgSWTCH1');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc2() {
var x = document.getElementById('imgSWTCH2');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc3() {
var x = document.getElementById('imgSWTCH3');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc4() {
var x = document.getElementById('imgSWTCH4');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc5() {
var x = document.getElementById('imgSWTCH5');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc6() {
var x = document.getElementById('imgSWTCH6');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function sfunc7() {
var x = document.getElementById('imgSWTCH7');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
</script>
这是让它出现在MouseOver上的Java脚本,而html是
<img id="imgSWTCH1"src="https://www.shareicon.net/data/128x128/2016/10/20/846459_blue_512x512.png" width="100" height="100"/>
<img id="imgSWTCH2"src="https://www.writeraccess.com/wp-content/uploads/2014/08/blog-html-5.png" width="100" height="100"/>
<img id="imgSWTCH3"src="https://www.shareicon.net/data/128x128/2016/06/25/619190_java_256x256.png" width="100" height="100"/>
<img id="imgSWTCH4"src="https://www.shareicon.net/data/128x128/2016/05/06/760855_css_512x512.png" width="100" height="100"/>
<img id="imgSWTCH5"src="http://poiemaweb.com/img/socketio-logo.png" width="100" height="100"/>
<img id="imgSWTCH6"src="https://www.shareicon.net/data/128x128/2016/07/08/116973_development_512x512.png" width="100" height="100"/>
<img id="imgSWTCH7"src="https://www.shareicon.net/data/128x128/2015/08/30/93000_javascript_512x512.png" width="100" height="100"/>
<center>
<br />
<br />
<table >
<tb id="tab" onmouseover="sfunc1()" onmouseout="this.className='BO';">C</tb>
<br />
<tb id="tab" onmouseover=" sfunc3()" onmouseout="this.className='BO';">Java</tb>
<tb id="tab" onmouseover=" sfunc2()" onmouseout="this.className='BO';">HTML</tb>
<tb id="tab" onmouseover="sfunc4()" onmouseout="this.className='BO';">CSS</tb>
<tb id="tab" onmouseover="sfunc5()" onmouseout="this.className='BO';">Socket.io/Node</tb>
<tb id="tab" onmouseover="sfunc6()" onmouseout="this.className='BO';">Angular.js</tb>
<br />
<tb id="tab" onmouseover="sfunc7()" onmouseout="this.className='BO';">Javascript</tb>
<tb id="tab" onmouseover=" this.className='BC';" onmouseout="this.className='BO';">and much more!</tb>
</table>
</center>
所有这些的onMouseout只是使背景变成橙色,但我想让它使与之对应的图像消失,这是我遇到的问题,因为你不能为一个元素分配多个ID。JQuery解决方案也可以工作,Angular 解决方案也可以。https://plnkr.co/edit/WwpzOkipsiCrbgbpXbd4?p=preview这里是pnlkr链接,取出html部分也可以看到整个内容。
5条答案
按热度按时间yyhrrdl81#
下面是一个使用JQuery的简单示例:
https://jsfiddle.net/ztuf96dg/4/
6tdlim6h2#
尝试使用一个用于鼠标悬停的函数和一个用于鼠标输出的函数来完成此操作。另外,使用img的可见性属性而不是Display来防止元素跳转。
编辑
所以重点是:
...在js和html中:
...以此类推但用jQuery做这件事会好一万:)这是90年代的编码风格:)
ctzwtxfj3#
你有7个函数在做同样的事情。更好的方法可能是创建一个函数,并将您想要隐藏的元素绑定到该函数。下面是一个例子:https://jsfiddle.net/83drj2rs/1/
以下是相应的Java脚本:
还要注意,我删除了html元素本身的所有
onmouseover
属性,并将其替换为data-hide
属性。这告诉函数在MouseOver事件上隐藏哪个元素。db2dz4w84#
试着这样做:
HMTL:
JavaScrip:
(*)确保已准备好在文档上 Package Java脚本。
});
2vuwiymt5#
运行代码Snnipt希望它能做到…祝你好运