Kann mir wer helfen, den Code zu erklären

Neurotrin

Neues Mitglied
Javascript:
(function($) {
 var $fortune = function(args) {
  if (args === undefined) {
   throw new Error("You must define the options.prices")
  }
  var options = $.extend({}, {
   prices: args,
   duration: 1e3,
   separation: 2,
   min_spins: 10,
   max_spins: 15,
   onSpinBounce: function() {}
  }, args);
  var fortune = this;
  var prices_amount = Array.isArray(options.prices) ? options.prices.length : options.prices;
  var prices_delta = 360 / prices_amount;
  var is_spinning = false;
  fortune.spin = function(price) {
   price = typeof price === "number" ? price : Math.floor(Math.random() * prices_amount);
   var deferred = $.Deferred();
   var position = Math.floor(prices_delta * (price - 1 / 2) + randomBetween(options.separation, prices_delta - options.separation));
   var spins = randomBetween(options.min_spins, options.max_spins);
   var final_position = 360 * spins + position;
   var prev_position = 0;
   var is_bouncing = false;
   is_spinning = true;
   fortune.css({
    transform: "rotate(" + final_position + "deg)",
    "-webkit-transform": "rotate(" + final_position + "deg)",
    transition: "transform " + options.duration + "ms cubic-bezier(.17,.67,.12,.99)",
    "-webkit-transition": "-webkit-transform " + options.duration + "ms cubic-bezier(.17,.67,.12,.99)"
   }).siblings(".spin").removeClass("bounce");
   var bounceSpin = function() {
    var curPosition = Math.floor(getRotationDegrees(fortune)),
     mod = Math.floor((curPosition + prices_delta * .5) % prices_delta),
     diff_position, position_threshold = prices_delta / 5,
     distance_threshold = prices_delta / 10;
    prev_position = Math.floor(curPosition < prev_position ? prev_position - 360 : prev_position);
    diff_position = curPosition - prev_position;
    if (mod < position_threshold && diff_position < distance_threshold || mod < position_threshold * 3 && diff_position >= distance_threshold) {
     if (!is_bouncing) {
      fortune.siblings(".spin").addClass("bounce");
      options.onSpinBounce(fortune.siblings(".spin"));
      is_bouncing = true
     }
    } else {
     fortune.siblings(".spin").removeClass("bounce");
     is_bouncing = false
    }
    if (is_spinning) {
     prev_position = curPosition;
     requestAnimationFrame(bounceSpin)
    }
   };
   var animSpin = requestAnimationFrame(bounceSpin);
   setTimeout(function() {
    fortune.css({
     transform: "rotate(" + position + "deg)",
     "-webkit-transform": "rotate(" + position + "deg)",
     transition: "",
     "-webkit-transition": ""
    }).siblings(".spin").removeClass("bounce");
    cancelAnimationFrame(animSpin);
    deferred.resolve(Array.isArray(options.prices) ? options.prices[price] : price);
    is_spinning = false
   }, options.duration);
   return deferred.promise()
  };
  var getRotationDegrees = function(obj) {
   var angle = 0,
    matrix = obj.css("-webkit-transform") || obj.css("-moz-transform") || obj.css("-ms-transform") || obj.css("-o-transform") || obj.css("transform");
   if (matrix !== "none") {
    var values = matrix.split("(")[1].split(")")[0].split(","),
     a = values[0],
     b = values[1],
     radians = Math.atan2(b, a);
    if (radians < 0) {
     radians += 2 * Math.PI
    }
    angle = Math.round(radians * (180 / Math.PI))
   }
   return angle
  };
  var randomBetween = function(min, max) {
   return Math.floor(Math.random() * (max - min + 1)) + min
  };
  return fortune
 };
 $.extend($.fn, {
  fortune: $fortune
 })
})(jQuery);
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Script schwierigkeit. kann mir jemand helfen? Angular, React, JQuery - Fragen zu JavaScript 14
G Wer kann mir Helfen, bei einer automatischen Diashow? Angular, React, JQuery - Fragen zu JavaScript 2
G hoffe mir kann jemand helfen. Angular, React, JQuery - Fragen zu JavaScript 9
B Bannerrotation funktioniert nicht, wer kann helfen? Angular, React, JQuery - Fragen zu JavaScript 6
thor_norsk TypeScript Code in Java Script zu konvertieren. Angular, React, JQuery - Fragen zu JavaScript 2
H Code in Chrome löschen Angular, React, JQuery - Fragen zu JavaScript 2
D NodeJS bzw. Javacript Code öffnen (im Browser) Angular, React, JQuery - Fragen zu JavaScript 26
J Welche Bedeutung hat Code außerhalb von Funktionen Angular, React, JQuery - Fragen zu JavaScript 3
N Farbänderung durch Hex Code Angular, React, JQuery - Fragen zu JavaScript 2
T Wie kann man den code hier abändern, damit es "Array-werte" einliest und nicht Excelwerte? Angular, React, JQuery - Fragen zu JavaScript 2
thowe bestehenden Code erwarten Angular, React, JQuery - Fragen zu JavaScript 6
C In Wordpress unter Custom-Js mit Javascript den ursprünglichen Code deaktivieren Angular, React, JQuery - Fragen zu JavaScript 0
T html code per javascript einfügen Angular, React, JQuery - Fragen zu JavaScript 7
R Java Code Hilfe Angular, React, JQuery - Fragen zu JavaScript 16
S Frage zum Code Angular, React, JQuery - Fragen zu JavaScript 2
N bb code Angular, React, JQuery - Fragen zu JavaScript 3
D wie integriere ich ein java-sript in einen htm-code? Angular, React, JQuery - Fragen zu JavaScript 2
M habe java code aber etwas funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 2
S java code positionieren Angular, React, JQuery - Fragen zu JavaScript 2
M Warum funktioniert der Code nur einmal im Frame? Angular, React, JQuery - Fragen zu JavaScript 2
F Frage zu Code Angular, React, JQuery - Fragen zu JavaScript 11
F Anfängerfrage zu Code Angular, React, JQuery - Fragen zu JavaScript 2
F Ich verstehe den Code nicht? Angular, React, JQuery - Fragen zu JavaScript 6

Ähnliche Java Themen

Neue Themen


Oben