【发布时间】:2014-06-07 11:16:36
【问题描述】:
我对 JS 还很陌生。参加了一些 lynda 课程,但我无法全神贯注地创建一个 sprite 预加载器(动画)。谷歌了很多,通过stackoverflow搜索,接近我想要的,但没有得到它。至此,我创建了这个徽标(已经将其设置为精灵),因此我希望精灵根据加载文件的百分比进行动画处理。
例如。在 0%-15% 时,我将拥有第一个,第二个在 15% 和 30% 之间,依此类推,直到最后一个,我将 div 设置为可见性:隐藏,如下所示:
HTML
<div id="preloader">
CSS
#preloader {
margin: 0-auto;
width: 450px;
height: 400px;
background-color: #282727;
background-image: url(http://roprojects.net/preloader/sprite.PNG)
}
JS 不确定,如果下面的文字看起来很愚蠢,请见谅。
// var percent = Something that would get the numeric progress of the page load;
$( window ).load(function() {
// example of first animation. And I don't even know how I should be going on from here.
// Maybe a for statement, some sort of a loop, was even thinking conditionals.
// Maybe a case/switch
// if (percent > 15 && percent <= 30) {below }
$('#preloader').css('backgroundPosition', '0 -400px');
});
// But ultimately that would require it to ..update itself (loop, I guess?)
这是我的第一篇文章,感谢您的时间和耐心。也欢迎任何外部参考,不要指望你为我写。再次感谢您很多!
编辑精灵本身。 http://roprojects.net/preloader/sprite.PNG
edit #2 我意识到我还应该给出预加载器的最终结果示例,所以这里是:http://www.fk-agency.com/。所以我通过查看js意识到
if(navigator.appName == "Microsoft Internet Explorer")
{
var pos = navigator.appVersion.indexOf("MSIE");
var ver = navigator.appVersion.substr(pos,8);
if((ver == "MSIE 6.0") || (ver == "MSIE 7.0")) { var oldie = true}
}
if(oldie != true){
$(window).load(function() {
setTimeout(function(){
$("#loading").fadeOut(function() {
$("#container").fadeIn(1500)
})
},300);
})
}
所以我从中得到的是,我们进行了一次浏览器检查,如果一切正常,一旦页面加载,预加载器 div 就会淡出并进入主页面。但仍然对精灵是如何获取的一无所知填充。 (我假设它只是两个图像,另一个从左到右完成。)仍然必须弄清楚如何将 css 属性更改绑定到数字页面加载过程本身。 ...任务仍在继续。
【问题讨论】:
-
好吧,终于到家了,现在我有时间思考答案了。您从其他网站发布的 browsercheck 不应该作为示例,您几乎总是希望检查您想要使用的功能,而不是浏览器,首先您要让它在您喜欢的几个浏览器上工作并且可以在一段时间内检查和调试并忽略所有其他人。
-
欢迎回家!我一直在寻找和寻找,并把我的眼睛溢出来。我仍在尝试同时查看 jquery 事件触发器,也许我会得到一些结果。
-
但是从@user3549636 之前发布的内容来看,我至少对如何设置“所说”触发器有所了解。帧不是要走的路,因为速度稳定(而且很难随机编号),我需要它与元素相应地加载。我在想这样:如果我可以将要加载的对象设置为数组,并且如果我有一个循环不断检查它们是否已加载,我可以根据加载的元素总数分配某个精灵.说要加载 150 个元素,如果 elLoaded >elToLoad/4 => 将 div 的属性更改为 -400px(精灵 2)。
标签: javascript jquery ajax html css