Javascript 只有当其他函数完全启动时,我如何才能让函数启动?
我有个问题。我有一张全屏(不是背景!只在我的onepage网站上做介绍。)图片幻灯片。(使用backstretch创建,真正的jQuery代码在另一个.js文件中。)您将在下面的代码中看到它。现在我有一个问题。我把文本放在它的中间,它的循环持续时间是相同的,所以它和文本同时改变图像。但是当我将网页上传到服务器时,图像的加载速度比文本慢。结果是,文本循环在图像滑块之前开始。我可以做一个函数,使文本仅在图像循环开始时才开始循环吗?我已经尝试过“卸载”功能,但是图像速度比文本快。(当我打开网站时,也可以包括一个加载轮,这样整个网站都可以加载..如果你不明白我的意思,请告诉我)Javascript 只有当其他函数完全启动时,我如何才能让函数启动?,javascript,jquery,html,Javascript,Jquery,Html,我有个问题。我有一张全屏(不是背景!只在我的onepage网站上做介绍。)图片幻灯片。(使用backstretch创建,真正的jQuery代码在另一个.js文件中。)您将在下面的代码中看到它。现在我有一个问题。我把文本放在它的中间,它的循环持续时间是相同的,所以它和文本同时改变图像。但是当我将网页上传到服务器时,图像的加载速度比文本慢。结果是,文本循环在图像滑块之前开始。我可以做一个函数,使文本仅在图像循环开始时才开始循环吗?我已经尝试过“卸载”功能,但是图像速度比文本快。(当我打开网站时,也可
美元后推([
“images/myimage1.png”,
“images/myimage2.png”,
“images/myimage3.png”,
“images/myimage4.png”
], {
衰减:750,//衰减速度
持续时间:5000//图像显示时间
});
$(函数(){
var messages=[],
指数=0;
messages.push('message1');
messages.push('message2');
messages.push('message3');
功能循环(){
$('#some id').html(消息[索引]);
索引++;
if(index==messages.length){
指数=0;
}
设置超时(周期,5750);
}
循环();
});
查看backstretch文档,我会使用和/或方法
查看backstretch文档,我会使用和/或方法
使用属性complete和naturalWidth检查图像是否已加载 这很简单。检查是否完整且自然宽度>0:图像正常
function IsImageOk(img) {
if (!img.complete) {
return false;
}
if (typeof img.naturalWidth !== "undefined" && img.naturalWidth === 0) {
return false;
}
return true;
}
阅读更多信息:使用属性complete和naturalWidth检查图像是否加载 这很简单。检查是否完整且自然宽度>0:图像正常
function IsImageOk(img) {
if (!img.complete) {
return false;
}
if (typeof img.naturalWidth !== "undefined" && img.naturalWidth === 0) {
return false;
}
return true;
}
请在此处阅读更多内容:正如MazzCris所说(但如果您需要,我将提供澄清),使用而不是设置超时(cycle,5750)代码>
守则是:
var messages = [],
index = 0;
messages.push('Message 1');
messages.push('Message 2');
messages.push('Message 3');
function cycle() {
$('#some-id').html(messages[index]);
index++;
if (index === messages.length) {
index = 0;
}
}
$(window).on("backstretch.after", function (e, instance, index) {
cycle();
});
如果您想将cycle()
保留为可调用函数,即
旁注:您可以使用messages
数组中的值来定义数组,而不必使用messages.push,除非出于某种原因您想这样做
如果您碰巧是这样做的,您可以将其更改为:
var messages = ['Message 1', 'Message 2', 'Message 3'],
index = 0;
正如MazzCris所说(但如果您需要的话,我将提供澄清),使用而不是setTimeout(cycle,5750)代码>
守则是:
var messages = [],
index = 0;
messages.push('Message 1');
messages.push('Message 2');
messages.push('Message 3');
function cycle() {
$('#some-id').html(messages[index]);
index++;
if (index === messages.length) {
index = 0;
}
}
$(window).on("backstretch.after", function (e, instance, index) {
cycle();
});
如果您想将cycle()
保留为可调用函数,即
旁注:您可以使用messages
数组中的值来定义数组,而不必使用messages.push,除非出于某种原因您想这样做
如果您碰巧是这样做的,您可以将其更改为:
var messages = ['Message 1', 'Message 2', 'Message 3'],
index = 0;
警报(消息[索引])显示什么?我必须将警报放在哪里?因为如果我这样做,就不会弹出警报。警报(消息[index])显示什么?我必须将警报放在哪里?因为如果我这样做,就不会出现警报。@heyho你确定这是因为行动吗?你说它消失是什么意思?它又出现又消失了吗?@嘿,你确定是因为这个动作吗?你说它消失是什么意思?它又出现又消失了吗?