滚动到顶部按钮不会淡入/淡出

时间:2014-04-30 10:17:23

标签: jquery html css

我正在尝试创建一个滚动到顶部按钮,当用户向下滚动页面时,该按钮会淡入。

我已经设法将按钮放在我想要的位置,以及使点击功能将我带到顶部。但是按钮会永久显示,不会淡入或淡出。

我有以下设置:

HTML

 <a class="scrollup" href="#">Scroll To Top</a>

这是放在div标签内的段落中。

的Javascript

<script type="text/javascript" src="../../../../jquery-1.11.0.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(window).scroll(function(){
    if (jQuery(this).scrollTop() > 100) {
        jQuery('.scrollup').fadeIn();
    } else {
        jQuery('.scrollup').fadeOut();
}
});
// scroll-to-top animate
jQuery('.scrollup').click(function(){
jQuery("html, body").animate({ scrollTop: 0 }, 600);
    return false;
});
});

CSS

.scrollup {
height: 50px;
width: 50px;
opacity:1.0;
padding:10px;
text-align:center;
background: #FFFFFF;
font-weight:bold;
color:#444;
text-decoration:none;
position:fixed;
top:75px;
right:40px;
}

如上所述,按钮永久存在,滚动后不会淡入,点击并转到页面顶部也不会淡出。

感谢您提供任何意见,以解决此问题。

3 个答案:

答案 0 :(得分:1)

您可以重构代码:

Demo Fiddle

CSS

.scrollup {
    height: 50px;
    width: 50px;
    opacity:0;
    padding:10px;
    text-align:center;
    background: #FFFFFF;
    font-weight:bold;
    color:#444;
    text-decoration:none;
    position:fixed;
    top:75px;
    right:40px;
    transition:opacity 1s ease-in;
}
.scrollup.visible {
    opacity:1;
}

的jQuery

jQuery(document).ready(function () {
    jQuery(window).scroll(function () {
        if (jQuery(this).scrollTop() > 100) {
            jQuery('.scrollup').addClass('visible');
        } else {
            jQuery('.scrollup').removeClass('visible');
        }
    });
    // scroll-to-top animate
    jQuery('.scrollup').click(function () {
        jQuery("html, body").animate({
            scrollTop: 0
        }, 600);
        return false;
    });
});

答案 1 :(得分:0)

您应该将'.scrollup'设置为display:none;。
你的CSS会是这样的:

.scrollup {
height: 50px;
width: 50px;
opacity:1.0;
padding:10px;
text-align:center;
background: #FFFFFF;
font-weight:bold;
color:#444;
text-decoration:none;
position:fixed;
top:75px;
right:40px;
}

并使您的脚本像这样:

jQuery(document).ready(function($){

    jQuery(window).scroll(function() {

    if(jQuery(this).scrollTop() != 0) {
        jQuery(".scrollup").fadeIn("slow");    
    }

    else {
        jQuery(".scrollup").fadeOut("slow");
    }

  });

答案 2 :(得分:0)

我猜你错过了一些参数。

var fit = 400;//how slow/fast you want the button to show. fade in time
var fot = 400;//how slow/fast you want the button to hide fade out time

<script type="text/javascript" src="../../../../jquery-1.11.0.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(window).scroll(function(){
    if (jQuery(this).scrollTop() > 300) {
        jQuery('.scrollup').fadeIn(fit );
    } else {
        jQuery('.scrollup').fadeOut(fot );
}
});
// scroll-to-top animate
jQuery('.scrollup').click(function(){
jQuery("html, body").animate({ scrollTop: 0 }, 600);
    return false;
});
});

我也改变了(jQuery(this).scrollTop()&gt; 300 ){ 如果工作正常,你可以将它改回100.