js并列排名之div图片加载

Posted 哎呀又又又又出错了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js并列排名之div图片加载相关的知识,希望对你有一定的参考价值。

今天遇到的问题基于上一次的代码:

当投票数相同后,比如最多的都是38票,有三人,此时,改成39时,排名依然是三个第一名

错误代码

if(j<countList.length){
if(countList[j].text===countList[j+1].text){
num[j+1].style.backgroundImage=num[j].style.backgroundImage;
}
}

这里仅仅是对相邻两个票数作比较,且由于num[j].style.backgroundImage;是动态获得的,也就是要更改的图片并不在num中存放,再怎么赋新值也是基于当前情况,因此我的解决办法是先存储图片

var numImg = new Array();
numImg[0]="url(‘/voteonline/img/num/1.png‘)";
numImg[1]="url(‘/voteonline/img/num/2.png‘)";
numImg[2]="url(‘/voteonline/img/num/3.png‘)";
numImg[3]="url(‘/voteonline/img/num/4.png‘)";
numImg[4]="url(‘/voteonline/img/num/5.png‘)";
numImg[5]="url(‘/voteonline/img/num/6.png‘)";
numImg[6]="url(‘/voteonline/img/num/7.png‘)";
numImg[7]="url(‘/voteonline/img/num/8.png‘)";
numImg[8]="url(‘/voteonline/img/num/9.png‘)";
numImg[9]="url(‘/voteonline/img/num/10.png‘)";

 

这时赋值就是相对初始情况了。

同时,不再是两两比较,而是当前对象与之后的所有对象比较,虽然会出现重复赋值的情况,但可以避免后面出现票数相同,但名次却不同的情况

for (var j = 0; j < countList.length; j++) {
count[j].innerhtml = countList[j].text;
for(var k=j+1;k< countList.length; k++){
if(countList[j].text==countList[k].text){
num[k].style.backgroundImage=num[j].style.backgroundImage;
}else{
num[k].style.backgroundImage=numImg[k];
}
}

}

























以上是关于js并列排名之div图片加载的主要内容,如果未能解决你的问题,请参考以下文章

js怎么调用Viewer.js加载图片

js实现图片懒加载

js实现瀑布流加载图片效果

图片懒加载之lazyload.js插件使用

JS教程之实现加载图片时百分比进度

Django 之瀑布流实现