【发布时间】:2019-11-08 05:17:10
【问题描述】:
我希望在网站加载后立即显示顶部横幅。我使用 JQuery 来完成这项任务,但 show() 函数没有按预期工作。
$(document).ready(function() {
$('#job').show(2000, function() {
$('#cross').click(function() {
$('#job').hide();
});
});
});
.job-banner {
position: fixed;
top: 0;
width: 100%;
z-index: 1;
background-color: #333;
display: none;
}
.job-banner:hover {
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="job" class="job-banner">
<p>...</p>
</div>
但这只是在没有任何动画的情况下立即显示 div,并且应该在动画之后执行的代码也不能正常工作。我试图在应该在 .show() 之后执行的代码块中放置一个警报,但没有。
还有其他方法可以实现还是我做错了什么?
【问题讨论】:
-
因为 show/hide 不仅会改变显示属性,还会改变不透明度。因此,您也必须将其设置为 0。
-
我将您的代码添加到一个可执行的 sn-p 中,它似乎可以正常工作。我建议这个问题是由页面中影响元素的其他一些 CSS 引起的。尝试使用 DOM 检查器查看应用了哪些样式。
-
@MauriceNino 并非如此
-
没错,但它会自动执行。您无需更改 CSS 即可处理它。
-
更好地使用过渡。因为 jQuery 在 iOS 设备上会导致滞后。 (它使用 javascript 超时 + 循环来改变样式)
标签: javascript jquery css sass