当鼠标移过文本然后在鼠标熄灭时向左滑动时,我希望文本为淡入淡出。滑动左侧部分运行良好,但fadeIn部分的问题是它不断导致文本淡入,然后淡出然后再次。它似乎不停地刷新页面并导致错误的事件触发(淡出)。
这是JS:
$('#text1').on('mouseenter', function(){
if($('#container2').children().length<3){
var newEl=document.createElement("p");
var position=document.getElementById("container2");
position.appendChild(newEl);
$(newEl).html('<br>'+'Test Text');
$(newEl).hide().fadeIn(500);
}
});
$('#text1').on('mouseleave', function(){
if($('#container2').children().length>1) {
$('#container2').children().last().animate({
opacity:0.0,
paddingLeft:'+=80',
},500,function () {
$(this).remove();
});
}
});
我的HTML:
<div id="container">
<div id="container2">
<h3 id="text1">Text 1</h3>
</div>
<div>
<form id="form1" onsubmit="return false">
<select name='vType' id='vTypeName'>
<some form>
</select>
<br><br>
<some Radio boxes>
<br>
<input id="vsubmit" type="submit" value="Send">
</form>
<br>
<div id="XXXX">
<Some Spans>
</div>
<br>
</div>
</div>
答案 0 :(得分:0)
工作演示:https://codepen.io/creativedev/pen/wXrRar
$('body').on('mouseenter','#text1',function(){
if($('#container2').children().length<3){
var newEl=document.createElement("p");
var position=document.getElementById("container2");
position.appendChild(newEl);
$(newEl).html('<br>'+'Test Text');
$(newEl).hide().fadeIn(500);
}
});
$('#text1').on('mouseleave', function(){
if($('#container2').children().length>1) {
$('#container2').children().last().animate({
opacity:0.0,
paddingLeft:'+=80',
},500,function () {
$(this).remove();
});
}
});
造成问题的CSS的一部分:
h3 {
color: red;
float: left;
padding: 10px 10px 10px 10px;
text-align: center;
font-size: 1.8em;
font-style: bold;
font-weight: 800;
line-height: 0.90em;
letter-spacing: -0.01em;
text-transform: uppercase;
border-left: 5px solid #c0bcc0;
border-right: 5px solid #bcbdc0;
border-top: 5px solid #bcbdc0;
border-bottom: 5px solid #bcbdc0;
margin-right: 50px;
}