在页面加载后让div层和javascript延迟几秒钟很困难

在页面加载后让div层和javascript延迟几秒钟很困难,javascript,jquery,delay,settimeout,Javascript,Jquery,Delay,Settimeout,我一直试图让这个脚本在页面加载后延迟几秒钟,但一直无法让它工作。我知道这里还有其他类似的问题似乎可以回答,但我已经尝试实施他们的解决方案,到目前为止还没有任何运气 我真的很感激你能提供的任何帮助。提前谢谢 <script> $.fn.rotate = function(){ return this.each(function() { var $children = $(this).children(); var position = -1; !function loop() {

我一直试图让这个脚本在页面加载后延迟几秒钟,但一直无法让它工作。我知道这里还有其他类似的问题似乎可以回答,但我已经尝试实施他们的解决方案,到目前为止还没有任何运气

我真的很感激你能提供的任何帮助。提前谢谢

<script>
$.fn.rotate = function(){
return this.each(function() {
var $children = $(this).children();
var position = -1;
!function loop() {
    position = (position + 1) % $children.length;
    $children.eq(position)
             .fadeIn(1000)
             .delay(7000)
             .fadeOut(1000, loop);
}();
});
};

function show() {
AB = document.getElementById('.bannergroup');
AB.style.display = 'inline';
}
setTimeout("show()", 5000);

$(function(){
$(".banneritem").hide();
$(".bannergroup").rotate();
});  

</script>

$.fn.rotate=函数(){
返回此值。每个(函数(){
var$children=$(this.children();
var位置=-1;
!函数循环(){
位置=(位置+1)%$children.length;
$children.eq(职位)
法丹先生(1000)
.延迟(7000)
.衰减(1000,环路);
}();
});
};
函数show(){
AB=document.getElementById('.bannergroup');
AB.style.display='inline';
}
setTimeout(“show()”,5000);
$(函数(){
$(“.banneritem”).hide();
$(“.bannergroup”).rotate();
});  
这一行

$(function () {
是更具表现力的功能的缩写,用于处理跨浏览器事件:

另一个加载事件是(也称为
window.onload

我看到您还试图通过典型的类标识符
.bannergroup
来选择元素,您必须使用
getElementsByClassName('bannergroup')
(不带点)。
但是,因为您有jQuery,所以让我们轻松地完成它:

function show() {
    $('.bannergroup').css({ display: 'inline' });
    // now .rotate()?
}

查看上面的场景,我认为您希望在页面中所有元素加载完毕后调用该函数。如果是这样,您可以使用:

    $(window).load(function(){
    //executes only when all the elements in the page finish loading like images.
     //write your stuff here 
    });
如果不是这样的话,Metadings建议的答案肯定会有帮助。
谢谢

很好,否则就不会了;据说,文档准备就绪的时刻就是解析
body
的时刻,这可能是在图像下载之前。我的错。From:以下三种语法都是等效的:$(document).ready(handler)$().ready(handler)(不推荐使用)$(handler)谢谢您的建议@metadings。我对如何实现这一点有点困惑。我是javascript新手。我是否需要将所有原始javascript代码放在。。。函数show()。。。第一个我没碰的。setTimeout的延迟当前为5000ms@metadings您好,我一直在尝试添加此代码并替换您建议替换的行,但它尚未对我起作用。我不确定我做错了什么。当你说你没能让它工作时,你到底是什么意思?它在做什么?你希望它做什么?您可以试着发布一个提琴来演示这个问题。@GreatBigBore我正在尝试获取一个div层,它是一个包含一些列表项和一些css转换的列表,在页面加载几秒钟后显示并开始转换,而不是在页面加载时立即显示。你可以在这里看到它的样子——在页面的第二部分,有一个引用的家伙的图像出现和消失。他的每张照片都是一个列表项,包含在一个主分区中。我希望主分区(.bannergroup)在出现之前有一个延迟。嗯,你是说“发布挑战”部分的那个家伙吗?看看你的信息来源,列表中的项目似乎是提示的图像,而不是那个家伙的图像。不管怎样,我想你想让那个家伙和div在页面加载后几秒钟内不可见?你的css是否隐藏了所有这些东西?我的意思是,在你的js可以运行之前,你在你的js/css/html中的什么地方隐藏了这个家伙和提示?@GreatBigBore这个javascript正在影响列表项目,这些项目是提示的图像。正确,我确实希望包含列表项的div在页面加载几秒钟后才可见。这个男人的形象不是这个场景的一部分。他在哪里都很好,哈哈。所有影响列表项目的js都在页面底部的末尾body标记之前。我把你的div和$()复制到了一把小提琴上,它可以按照你的要求工作:可见的花花公子,不可见的提示。我建议采用分而治之的方法:去掉除div之外的所有内容,测试你的页面,确保它能像那样工作,然后开始重新添加内容,看看什么时候它会崩溃。祝你好运,没错。我想有一个10秒的延迟后,页面加载。我一直在尝试添加上面的代码和setTimeout函数,但到目前为止没有成功。我不确定我做错了什么。
function show() {
    $('.bannergroup').css({ display: 'inline' });
    // now .rotate()?
}
    $(window).load(function(){
    //executes only when all the elements in the page finish loading like images.
     //write your stuff here 
    });