5

我在一个网站上使用 nivo 滑块,在它加载之前,所有图像在页面上都是静态的大约一秒钟。加载 nivo 滑块后,它们都位于滑块中。

有没有办法解决这个问题?在加载任何页面之前先触发滑块?它的网站www.pegasusproperty.co.uk我用于滑块的代码是

<script type="text/javascript">
$(window).load(function() {
    $('#slider').nivoSlider({
        effect: 'fade',
        animSpeed: 700,
        pauseTime: 4000,
    });
});
</script>    this code is in the head of the document 

它在 Firefox 中发生得最好

问候

4

4 回答 4

6

尝试这个

将您的 div 设置sliderdisplay: none;

<div id="slider" style="display: none;">

并在页面加载/文档准备就绪时显示它

$(window).load(function() { 
    $('#slider').show().nivoSlider({ effect: 'fade', animSpeed: 700, pauseTime: 4000 }); 
});

编辑:我认为您的解决方案实际上可能要简单得多。您将滑块 div 设置为固定的宽度和高度,但您的图像将其扩展得更大,只需将 div 的溢出设置为隐藏即可解决问题

#slider {
 overflow: hidden;   
}
于 2011-11-23T14:41:06.840 回答
0

就像 sparky 一样,我以可见性来处理这个问题,这样其他内容就不会发生变化。

如果像我一样,您使用 Views Nivo Slider 进行 drupal,那么您将在视图中设置动画速度等,因此您需要在 jQuery 脚本中设置的只是可见性。注意我更喜欢一种稍微不同的方式来表达 jQuery css

$(window).load(function() { 
    $('#slider').css({visibility: 'visible'});
});

在您的页面中,以下代码很好,但我更喜欢在 css 中设置样式。

<div id="slider" style="display: none;">
于 2012-02-08T10:00:00.207 回答
0

我更喜欢使用,visibility:hidden;而不是display:none;因为它不会从内容流中删除元素。我认为在页面加载后不要让内容四处移动在视觉上会更好。

<div id="slider" style="visibility:hidden;">

在图像完全加载后使其可见,无需任何额外的内容移动。

$(window).load(function() { 
    $('#slider').css({'visibility':'visible'}).nivoSlider({
      effect: 'fade',
      animSpeed: 700,
      pauseTime: 4000,
    });
});
于 2011-11-23T14:51:30.030 回答
0

我的解决方案只是添加这个类:

.nivoSlider {
    overflow: hidden;
    max-height: 460px;
}

您可以设置所需的高度。

于 2017-05-28T17:20:10.417 回答