(jquery)阻止div在页面加载期间显示

时间:2012-09-12 22:55:17

标签: javascript jquery fouc

如果您转到www.rambocats.com,当页面加载时,您会看到这个底部中心的div显示一两秒,然后消失。 (Div用粉红色字母表示“画廊II”)。它应该只在您向下滚动到页面的大约2/3时出现。如何在初始加载期间阻止它显示?

这是jQuery:

$(document).ready(function(){
var open = false;
$('#homiesSlideButton').click(function() {
    if(open === false) {
        $('#homiesSlideContent').animate({ height:'610px' });
        $(this).css('backgroundPosition', 'bottom left');
               $("#homies-wrapper img").peTransitionHilight({   // image highlight/transitions plugin
                                        slideshow:true, 
                                        transition:"all", 
                                        duration:1500, 
                                        delay:4444, boost:0.3
                                  });
        open = true;
    } else {
        $('#homiesSlideContent').animate({ height: '0px' });
        $(this).css('backgroundPosition', 'top left');
        open = false;
    }
});
});

$("#homiesSlideButton").hide();
$(window).scroll(function(){
if($(window).scrollTop()>4444){               // position on page when button appears
     $("#homiesSlideButton").fadeIn();
  }else{
     $("#homiesSlideButton").fadeOut();
  }
});  


$(window).scroll(function(){
if($(window).scrollTop()>4444){               // position on page when button disappears
     $("#homiesSlideContent").fadeIn();
  }else{
     $("#homiesSlideContent").fadeOut();
  }
});

4 个答案:

答案 0 :(得分:9)

正在发生的事情是它默认设置为可见,因此它会在javascript / jquery运行之前显示以隐藏它。

我倾向于对从一开始就不应该看到的项目做的是为它们添加一个设置为display: none;visibility: hidden;的CSS类,如下所示:

.hide {
    display: none;
}

然后使用jquery在调用.hide()后删除该类。关于元素:

$('#elementId').hide().removeClass('hide');

答案 1 :(得分:1)

可以这么简单:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Let's hide and show a div</title>

<style type="text/css">
#myHiddenDiv { visibility: hidden; }
</style>

</head>

<body>

<div id="myHiddenDiv">
Hidden until after the script loads. It will be imperceptible in most cases. But if    you comment out or remove the script, the div will indeed be hidden!
</div>


<script type="text/javascript">
document.getElementById('myHiddenDiv').style.visibility = 'visible';
</script>

</body>
</html>

答案 2 :(得分:0)

我认为这是.hide()事件的动画,请尝试style="display:none;"作为$("#homiesSlideButton")元素的html的一部分。

答案 3 :(得分:0)

在div的CSS中,将div设置为具有属性

visibility: hidden;

页面加载后,

$("#yourDivId").show();