我正在使用jquerynewsticker以新闻自动收录方式显示数字π的100,000位数字。 如果我打开了我的Chrome检查器,我可以看到页面从上到下加载,但是数字之后,以及它后面的所有JS,都会呈现黑色几秒钟,然后才变为默认颜色。但是,脚本已经开始运行,您可以在此处的测试页面上看到:http://marckremers.com/pi/ticker/ 它似乎运行,但没有渲染。 如果我减少数字的大小,它的工作原理。 所以这显然是装载不完整的问题。
如果所有内容都已100%加载,我如何强制脚本才能播放?
答案 0 :(得分:2)
查看您的网站,我看到您加载了自动收报机插件并执行了自己的代码:
jQuery(document).ready(function($) {
$(function () {
$('#js-news').ticker({
speed: 0.05,
fadeInSpeed: 0,
titleText: '',
controls: false,
});
});
});
此代码中有2个问题:
1)不必要的筑巢。你在文件准备就绪时执行你的代码,然后再次调用文件就绪处理程序($(function(){...});
请记住,编写$(document).ready(function(){})或$(function(){})的目的完全相同。因此,您可以删除第二个事件侦听器(无用):
jQuery(document).ready(function($) {
$('#js-news').ticker({
speed: 0.05,
fadeInSpeed: 0,
titleText: '',
controls: false,
});
});
使用document.ready注册,您的代码将在完全构建DOM后运行。
2)我看到的另一个问题是你的选择器#js-news无法解决!我看到页面中没有ID = js-news的元素......我错过了什么吗?
答案 1 :(得分:1)
你可以把你的代码放在上面等待dom完全加载。
$(function() {
// Your code
});
如果还不够,如果你想等待加载的所有东西(图片,css,......),你可以把你的代码放在上面:
$(function()
{
$(window).bind('load', function()
{
// Your code
});
});