【发布时间】:2020-07-08 05:32:23
【问题描述】:
我在同时使用 show 和 animate 时遇到了一些问题。我希望该框在每次 my_ids 被点击时显示和淡入,并在页面的任何其他部分被点击时淡出。 但就目前而言,动画不透明:“1”仅适用于第一次点击。
这是我学习 jQuery (/javascript) 的第三天,这是我所学的大部分内容,因此非常感谢您提供更多愚蠢的答案 :)
相关HTML:
<html>
<head>
<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
<link type="text/css" rel="stylesheet" href="stylesheet-june3.css">
</head>
<body>
<div class="folio-experience-4" id="EWF20">
<div class="experience-title-highlight" id="EWF20-1">
<a href="https://emergingwritersfestival.org.au/emerging-writers-festival/">Emerging Writers' Festival</a><br>
<div class="experience-title-highlight" display="inline" style="text-align:right; padding-right:20px;" id="EWF20-3">-- Digital Producer
</div>
</div>
<div class="experience-description-highlight" id="EWF20-2">
ONLINE CURATOR FOR EWF20, ONE OF AUSTRALIA'S MOST ESTABLISHED AND WELL-RESPECTED
LITERARY FESTIVALS
</div>
</div>
<div class="content-righthand-1-5">
<div id="EWF20_extra">
hello ~~~
</div>
</div>
</body>
</html>
CSS:
#EWF20_extra{
top:300px;
display:none;
border: 1px dashed;
border-radius:50px;
text-align: center;
padding: 20px;
opacity: 0;
}
jQuery /javascript:
<script>
$(document).ready(function(){
var my_ids = ["EWF20", "EWF20-1", "EWF20-2", "EWF20-3"]
$("html").on('click', my_ids, function(e) {
if (my_ids.includes(e.target.id)) {
console.log("Doing my thang!")
}
/* >> is the id of the thing targeted (clicked on) included in my_ids */
if (e.target.id == "EWF20" || e.target.id == "EWF20-1" || e.target.id == "EWF20-2" || e.target.id == "EWF20-3"){
$("#EWF20_extra").show().animate({opacity: '1'}, 2000);
} else {
$("#EWF20_extra").fadeOut(1000);
}
});
});
</script>
非常感谢您的帮助! :))
【问题讨论】:
-
你这样做有什么理由吗?而不是使用
.fadeIn()?您遇到的问题是因为opacity:1被留在对象上。当您已经有一个可以使用的功能时,创建一个变通方案会变得更加复杂。 -
除了这是我正在学习的第一个 javascript / jQuery 之外,没有其他原因,我观看了一个演示动画不透明度而不是淡入淡出的教程。我更改为fadeIn,现在效果很好!感谢所有答案
-
啊,太好了!我认为可能需要这样做,这就是为什么我想在为您制定解决方案之前进行检查。看到你可以使用fadeIn,那当然可以这样做:)
标签: javascript jquery jquery-animate show