我对 Web 开发和整个 html、css、js 东西有点陌生,但我敢说我是一个称职的程序员,所以我至少应该知道我的代码有什么问题。但事实并非如此,我正处于一种我不想停留的愤怒沮丧状态。
我的目标是以 Power Point 演示文稿的相同方式创建一个完整的在线类(class):可点击的对象使事物出现并引导到其他页面;以及按顺序出现的图像动画。
我之前转录到网页上的“幻灯片”没有任何问题,但最后一张让我头疼。
我的页面主要包含通过 <img>
包含的图像标签,所有这些都带有适当的 id
和一个或多个class
值(class="class1 class2"
)。定位为 position: absolute;
风格我把它们放在我想要的地方。
接下来是动画,这是我处理它的方式:
当文档完成加载时,这是 <body class="contentBody" onload=...>
一个方法被称为:myLocalInit();
它使用 jQuery 函数处理动画。这是关于它的全部代码:
function myLocalInit(){
disablePNButtons();
hideAll('.part');
lowerClass('.animar',50);
slideUpAll();
}
function slideUpAll(){
$(".identifica").animate({
top: '-=50px',
opacity: '1'
}, 400);
setTimeout(slideUpRest(),400);
}
function slideUpRest(){
$(".identifica").animate({
top: '-=50px',
opacity: '1'
}, 400, function(){$('#preguntas').animate({
top: '-=50px',
opacity: '1'
}, 400, function(){ $('#hogar').animate({
top: '-=50px',
opacity: '1'
}, 400, function(){ $('#negocio').animate({
top: '-=50px',
opacity: '1'
}, 400, function(){ $('#holabank').animate({
top: '-=50px',
opacity: '1'
}, 400, function(){ $('#agrobank').animate({
top: '-=50px',
opacity: '1'
}, 400 function(){ $('#vr').animate({
opacity: '1'
}, 400)})})})})})});
}
function hideAll(class1){
$(class1).css('opacity','0');
}
function lowerClass(class1,height){
$(class1).css('top', '+='+height+'px');
}
function disablePNButtons(){
UDUTU_API.gblPreviousButton.btnEnabled(false);
UDUTU_API.gblNextButton.btnEnabled(false);
}
还有 <body>
最后看起来像这样:<body class="contentBody" onload="myLocalInit();">
然后,当页面加载时,myLocalInit()
中的方法都没有了。生效,这很奇怪。但它变得更奇怪了!如果我从 myLocalInit()
中取出方法并将它们放在 onload
中事件( <body class="contentBody" onload="disablePNButtons();hideAll('.part');lowerClass('.animar',50);slideUpAll();">
,它们在 slideUpAll()
之前生效(我通过无聊的 alert
调试发现了这一点)。
我真的不知道这个特定页面有什么问题,我对前 7 个页面进行了类似的编程并且运行良好。请,请!求求各位高手,请赐教为什么这行不通T_T
最佳答案
这可能/可能无法解决您的问题。在不调试代码的情况下很难确定确切的解决方案。只是阅读你的问题并没有让我想到任何明显的问题。因此,我可以提供一些可以解决问题并使您的代码更可靠的良好实践。
请将您的功能放在文档就绪 block 中:
// A $( document ).ready() block.
$( document ).ready(function() {
console.log( "ready!" );
// All your functions
myLocalInit();
});
然后将脚本标记从 header 移动到末尾(就在结束 </body>
标记内。
这使得 javascript 非阻塞,并且仅在 DOM 准备就绪时才加载。
接下来你可以做的是,也调用 myLocalInit();
在文档就绪 block 的末尾,如上所示,并将其从 body.onload 中删除。一旦加载了 DOM,它仍然会运行。
如果这些更改解决了问题,请告诉我。
关于javascript - 为什么不显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38632493/