使用css display时,不会隐藏滚动到顶部按钮:none;

时间:2013-03-17 12:30:14

标签: jquery css

我正在使用以下脚本滚动到顶部函数

  $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
            $('.scrollup').fadeIn();
        } else {
            $('.scrollup').fadeOut();
        }
    }); 

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

**html**
    <a href="#" class="scrollup">Scroll</a>

**css**
    .scrollup{
    width:40px;
    height:40px;
    opacity:0.3;
    position:fixed;
    bottom:50px;
    left:100px;
    display:none;
    text-indent:-9999px;
    background:url('{{ 'icon_top.png' | asset_url }}') no-repeat;
}

@media only screen and (max-width: 767px) {
    .scrollup {
        display:none;
    }
}

问题在于,当我使用此脚本时,我的css(display:none;下)中的@media未被使用。我需要它来隐藏移动设备中的按钮。

底部脚本(使用不同的css)工作正常,但我想使用上面的fadeIn fadeOut使用。

我缺少什么?

 $(window).scroll(function(){
    if(window.scrollY > 100) {
        $('.scrollup').css('bottom', -8);
    } else {
        $('.scrollup').css('bottom', -100);
    }
});
$('.scrollup').click(function(){
        $("html, body").animate({ scrollTop: 0 }, 600);
        return false;
    });

3 个答案:

答案 0 :(得分:0)

该元素的ID是#scrolltop还是.scrollup类?对于你正在做的事情听起来好像需要jQuery才能找到它。

如果真正的目标是在移动设备上隐藏此内容,则可能需要使用媒体查询。

@media (max-width:699px) {
    #scrolltotop, .scrollup { display: none; }
}

这将在任何比700px窄的网页浏览器上隐藏该按钮。

* --UPDATE-- *

由于你已经走了那条路并且它无法工作,你可能只想做一个移动浏览器检测来处理这个问题。

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
    $('.scrollup').css({display:'none'});
}

您可以在此处找到该测试的完整扩展版本:http://detectmobilebrowsers.com/

使用这种方法,您可以隐藏在移动设备上查看时不希望显示在页面上的此元素和任何元素集合。

答案 1 :(得分:0)

尝试使用jQuery .hide()代替/

$('.scrollup').hide();

除了在其他答案中讨论的内容之外,还有一些检查移动设备的方法

1)

 if( useragent.search("iphone") )
    ; // iphone
else if( useragent.search("ipod") )
    ; // ipod
else if( useragent.search("android") )
    ; // android

2)

var isMobileDevice = navigator.userAgent.match(/iPad|iPhone|iPod/i) != null 
    || screen.width <= 480;

答案 2 :(得分:0)

我遇到了同样的问题并用以下方法解决了这个问题:

@media print { 
    .scrollup { 
        display: none; 
        bottom: 0; 
        right: 0; 
        width: 0px; 
        height: 0px; 
        visibility: hidden; 
    }
}