【发布时间】:2015-07-06 23:48:57
【问题描述】:
这是我的代码:
$(document).ready(function () {
$("#back-top").hide();
$(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('#back-top').fadeIn();
} else {
$('#back-top').fadeOut();
}
});
});
});
还有 CSS:
#back-top
{
opacity: 0.6;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
#back-top:hover
{
opacity: 1.0;
transition: opacity .55s ease-in-out;
-moz-transition: opacity .55s ease-in-out;
-webkit-transition: opacity .55s ease-in-out;
}
所以问题来了:当我像这样组合我的 CSS 和 jQuery 时,#back-top 元素不会在需要时淡入或淡出。在滚动功能触发的那一刻,它只是凭空出现,没有任何影响。因此,如果我删除 CSS 淡入/淡出工作。如何组合代码的两个部分,以便当元素淡入时,它只淡入opacity: 0.6;,然后停止。悬停时它应该有opacity: 1;,并且在超出滚动功能范围时仍然能够淡出。我认为必须有一个CSS唯一的方法,jQuery只是在函数激活时添加类......但我还没有弄清楚......
【问题讨论】:
-
尝试使用fadeTo()
-
对以下答案的评论:您正在尝试使用 CSS(过渡)和 jQuery(淡入/淡出)为元素设置动画,您必须选择一种解决方案,但不要同时选择两者其中。
-
@enguerranws 为什么不呢?统计数据显示,人们更有可能从外观精美的网站购买商品。
-
我同意这一点,我的意思是:如果你想做花哨的动画,只需使用 CSS 过渡或 JS 动画,而不是在同一元素上同时使用这两种技术。在上面的示例中,这就是您要实现的目标。