JavaScript随机生成封面,并且5s切换一次顺序

2024-01-30 20:15:57
/
0 点赞
/
114 阅读
2024-01-30

// 随机over
// Define the Murmur3Hash function
function MurmurHash3(string) {
    let i = 0;
    for (i, hash = 1779033703 ^ string.length; i < string.length; i++) {
        let bitwise_xor_from_character = hash ^ string.charCodeAt(i);
        hash = Math.imul(bitwise_xor_from_character, 3432918353);
        hash = hash << 13 | hash >>> 19;
    } return () => {
       // Return the hash that you can use as a seed
        hash = Math.imul(hash ^ (hash >>> 16), 2246822507);
        hash = Math.imul(hash ^ (hash >>> 13), 3266489909);
        return (hash ^= hash >>> 16) >>> 0;
    }
}

function SimpleFastCounter32(seed_1, seed_2, seed_3, seed_4) {
    return () => {
      seed_1 >>>= 0; seed_2 >>>= 0; seed_3 >>>= 0; seed_4 >>>= 0;
      let cast32 = (seed_1 + seed_2) | 0;
      seed_1 = seed_2 ^ seed_2 >>> 9;
      seed_2 = seed_3 + (seed_3 << 3) | 0;
      seed_3 = (seed_3 << 21 | seed_3 >>> 11);
      seed_4 = seed_4 + 1 | 0;
      cast32 = cast32 + seed_4 | 0;
      seed_3 = seed_3 + cast32 | 0;
      return (cast32 >>> 0) / 4294967296;
    }
}

function randomCover() {
    let covers = document.querySelectorAll("img.object-cover");
    if (covers.length == 0) {
        return;
    }
    seed = parseInt(new Date().getTime() / 5000);
    
    let generate_seed = MurmurHash3(seed.toString());
    let random_number = SimpleFastCounter32(generate_seed(), generate_seed());
    // 生成0~50的序列,然后打乱顺序
    let arr = Array.from({length: 48}, (v, k) => k+1);
    arr.sort(() => random_number() - 0.5);
    console.log("arr:", arr);
    covers.forEach(function(cover, index) {
        cover.src = "/assets/images/cover/" + arr[index] + ".jpg";
    });
}
版权属于:

那棵树看起来生气了

本文链接:

(转载时请注明本文出处及文章链接)