我正在创建一个草图板,其中鼠标悬停会在div网格上创建一个效果。效果取决于所选的单选按钮。使用CSS可能有更好的方法来实现这一点,但建立这个的重点是练习Javascript和jQuery,以便我尝试做这些效果。
代码:https://jsfiddle.net/xc3w1z9m/
全屏视图:https://jsfiddle.net/xc3w1z9m/embedded/result/
问题1)每个效果都按预期工作,除了" Trail"影响。 " Trail"效果应该在div中淡化为完全不透明度,然后将鼠标悬停在#34; mouseout"上,然后将其淡化为透明效果。我的代码现在是一个集群,因为不断调整,但事件处理程序为" mouseover"和#34; mouseout"到位了。 " mouseout"事件处理程序不起作用。
以下事件处理程序的位置似乎会影响它是否有效。
$('grid-box').on('mouseout', function(){
$(this).animate({
opacity: 0
}, 500);
});
如果我把它放在现在的位置,它就不起作用了。如果我将它放在第27行(在另一个事件处理程序中),它确实有效。我对此犹豫不决,因为我不确定在事件处理程序中是否有一个事件处理程序是个好主意。
有什么想法吗?
问题2)这个问题与div有时不覆盖网格的整个高度有关。例如,按"重置网格"并将其设置为100x100(输入100)。这些盒子不会填满网格的整个高度,但根据我的计算,它应该是。底部还留有一点空间,侧面有时会留有其他条目,例如17.大多数40x40以下的网格尺寸会填满整个高度和宽度。
我使用以下计算:
非常感谢任何一个问题的帮助!
答案 0 :(得分:0)
问题1)试试这个 https://jsfiddle.net/xcnwtnt2/1/
case 'trail':
var e = $(this);
$(e).stop();
$(this).animate({
opacity: 1
},200);
$(this).mouseout(function(_e) {
$(e).animate({
opacity: 0
},200);
});
break;
问题2)
我认为你正在得到四舍五入的错误:例如480/100 = 4整数,留下80。你需要找出一个更好的分块系统。