Bierdopje Billboard Randomizer

Randomizes the billboard on the homepage.

  1. // ==UserScript==
  2. // @name Bierdopje Billboard Randomizer
  3. // @namespace http://www.bierdopje.com
  4. // @version 1.2
  5. // @description Randomizes the billboard on the homepage.
  6. // @match http://*.bierdopje.com/
  7. // @run-at document-start
  8. // @grant unsafeWindow
  9. // @require http://code.jquery.com/jquery-1.10.2.js
  10. // @author Tom
  11. // @copyright 2016+, Tom
  12. // ==/UserScript==
  13. /* jshint -W097 */
  14. /* global $, console */
  15. 'use strict';
  16.  
  17. console.log("Bierdopje billboard randomizer ready to rock and roll");
  18.  
  19. var ROTATION_SPEED = 7500; // ms. Default value: 7500. Recommended: 4000 ~ 10000
  20. var TOTAL_BOARDS = $("#billboard div").size();
  21.  
  22. $(function() {
  23. preInit();
  24. function preInit() {
  25. stopDefaultBillboardBehavior();
  26. hideDefaultBillboard();
  27. setInitialBillboard();
  28. }
  29. function stopDefaultBillboardBehavior() {
  30. for (var i = 1; i <= 10; i++) {
  31. window.clearInterval(i);
  32. }
  33. }
  34. function hideDefaultBillboard() {
  35. $("#billboard div:eq(0)").hide();
  36. $("#billboardtext div:eq(0)").hide();
  37. }
  38. function setInitialBillboard() {
  39. var random = Math.floor(Math.random() * TOTAL_BOARDS);
  40. $("#billboard div:eq(" + random + ")").show();
  41. $("#billboardtext div:eq(" + random + ")").show();
  42. }
  43. });
  44.  
  45. $(window).load(function() {
  46. postInit();
  47. function postInit() {
  48. setInterval(showNextItemOnBillboard, ROTATION_SPEED);
  49. }
  50.  
  51. function showNextItemOnBillboard() {
  52. var nextRandomBoard = Math.floor(Math.random() * TOTAL_BOARDS);
  53. var currentBoardImage = $("#billboard div:visible");
  54. var currentBoardText = $("#billboardtext div:visible");
  55. var nextBoardImage = $("#billboard div:eq(" + nextRandomBoard + ")");
  56. var nextBoardText = $("#billboardtext div:eq(" + nextRandomBoard + ")");
  57. if (currentBoardImage[0] === nextBoardImage[0]) {
  58. var anotherRandomBoard = getRandomOtherThan(nextRandomBoard);
  59. nextBoardImage = $("#billboard div:eq(" + anotherRandomBoard + ")");
  60. nextBoardText = $("#billboardtext div:eq(" + anotherRandomBoard + ")");
  61. }
  62.  
  63. currentBoardText.slideUp("slow", function() {
  64. nextBoardImage.animate({
  65. width: 'show'
  66. }, 'slow', function() {
  67. currentBoardImage.fadeOut("slow", function() {
  68. nextBoardText.slideDown("slow");
  69. });
  70. });
  71. });
  72. }
  73. function getRandomOtherThan(oldRandom) {
  74. var currentRandom = Math.floor(Math.random() * TOTAL_BOARDS);
  75. return (currentRandom === oldRandom) ? getRandomOtherThan(currentRandom) : currentRandom;
  76. }
  77. });

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址