火狐和歌剧有固定位置的麻烦

时间:2013-01-05 16:44:14

标签: jquery css

我正在使用这些典型位置之一:修复“滚动到顶部”链接,通过jquery,在手动向下滚动时淡入,如果手动向后滚动则淡出。点击链接后,它会动画滚动到你的网站顶部。

css问题是,当你单击opera-or-firefox中的链接时,css从底部切换:10px到top:0px,除非再次单击它,否则不会发生scrollTop。

如果在样式表中将其更改为top:0,则链接正常。但尝试底部:10px(或除顶部之外的任何东西:0)并且点击它的行为导致它再次变为顶部:0。 好像FF& O不允许除top之外的任何内容:0px。

有什么想法吗?

这是CSS -

a#scrollup{
display:none;
width:51px;
height:51px;
-moz-opacity:.7;
opacity:.7;
zoom:1;
filter:alpha(opacity=70);
position:fixed;
overflow:hidden;
text-indent:100%;
white-space: nowrap;
z-index:1001;
bottom:10px;
right:10px;
background: url('images/ui.totop.png') no-repeat;
-webkit-transition:opacity 0.8s ease-in-out;
   -moz-transition:opacity 0.8s ease-in-out;
    -ms-transition:opacity 0.8s ease-in-out;
     -o-transition:opacity 0.8s ease-in-out;
        transition:opacity 0.8s ease-in-out;
}

a#scrollup:hover{
-moz-opacity:.9;
opacity:.9;
filter:alpha(opacity=90);
}
a#scrollup:active{bottom:8px}

这是脚本 -

    $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
            $('a#scrollup').fadeIn();
        } else {
            $('a#scrollup').hide('fast');  
        }
    }); 

    $('a#scrollup').click(function(){
        $("html, body").animate({ scrollTop: 0 }, 600, 'easeInExpo');
        return false;
    });

1 个答案:

答案 0 :(得分:0)

好吧,我能想到的唯一解决办法就是给锚一个div包装器并申请 位置:固定和底部:10px到它,而不是锚/链接。

新CSS:

div#scrollup {
display:none;
position:fixed;
z-index:1001;
bottom:10px;
right:10px;
}

div#scrollup a{
overflow:hidden;
text-indent:100%;
white-space: nowrap;
width:51px;
height:51px;
-moz-opacity:.7;
opacity:.7;
zoom:1;
filter:alpha(opacity=70);
background: url('images/ui.totop.png') no-repeat;
-webkit-transition:opacity 0.8s ease-in-out;
   -moz-transition:opacity 0.8s ease-in-out;
    -ms-transition:opacity 0.8s ease-in-out;
     -o-transition:opacity 0.8s ease-in-out;
        transition:opacity 0.8s ease-in-out;
}

div#scrollup a:hover{
-moz-opacity:.9;
opacity:.9;
filter:alpha(opacity=90);
}
div#scrollup a:active{bottom:8px}

改变了jquery:

     $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
            $('div#scrollup').fadeIn();
        } else {
            $('div#scrollup').hide('fast');  
        }
    }); 

    $('div#scrollup a').click(function(){
        $("html, body").animate({ scrollTop: 0 }, 600, 'easeInExpo');
        return false;
    });

所以它需要一个包装器。