【发布时间】:2014-10-18 21:41:16
【问题描述】:
我对 JavaScript 比较陌生,但我试图找到一种更有效的方法来调用翻转函数,而无需在 HTML 中使用内联事件。下面是我目前使用的方法:
HTML
<div id="work_square">
<img onmouseover="rolloverIn('rollover_1');" onmouseout="rolloverOut('rollover_1');" src="images/frugal_image.png" width="100%"/>
<div onmouseover="rolloverIn('rollover_1');" onmouseout="rolloverOut('rollover_1');" id="rollover_1" class="rollovers">
<div id="rollover_text">
<h2>ROLLOVER 1 TITLE</h2>
<p>This is rollover 1.</p>
</div>
</div>
</div>
<div id="work_square">
<img onmouseover="rolloverIn('rollover_2');" onmouseout="rolloverOut('rollover_2');" src="images/exhibiton_image.jpg" width="100%"/>
<div onmouseover="rolloverIn('rollover_2');" onmouseout="rolloverOut('rollover_2');" id="rollover_2" class="rollovers">
<div id="rollover_text">
<h2>ROLLOVER 2 TITLE</h2>
<p>This is rollover 2.</p>
</div>
</div>
</div>
JS
<script>
function rolloverIn(el){
var elem = document.getElementById(el);
elem.style.opacity = 1;
elem.style.transform = "scale(1)";
}
function rolloverOut(el){
var elem = document.getElementById(el);
elem.style.opacity = 0;
elem.style.transform = "scale(0)";
}
基本上,当鼠标悬停在图像或鼠标悬停时,我会调用一个函数来对放置在每个 work_square 上的鼠标悬停应用 CSS 变换和不透明度更改,然后在鼠标移出时删除更改。
这种方法有效,但我认为内联编码是不好的做法。有人能指出我朝着更有效方法的正确方向吗?
谢谢。
【问题讨论】:
-
看在上帝的份上,ID 是独一无二的
-
您可以使用 jquery 删除内联函数调用 $('#rollover_1').mouseover(function() { //在鼠标悬停时在此处执行某些操作 }); $('#rollover_1').mouseout(function() { //鼠标移出时在这里做点什么。});
-
出于某种原因你不喜欢 CSS 吗? JavaScript 在这里似乎完全没有必要。
标签: javascript html inline-code rollover-effect