Plate visuals now get added each time you calculate a weight. Still need to have the plates be animated. Instead of putting in a string it needs to append and add the weights each time. Make a function to append and then animate each weight.
108 lines
3.6 KiB
JavaScript
108 lines
3.6 KiB
JavaScript
// jQuery( document ).ready(function() {
|
|
// calculation function starts here
|
|
|
|
function startcalc() {
|
|
|
|
jQuery(".input-weightsneeded").val(null);
|
|
|
|
//calls inputs to start calculation
|
|
var weighttolift = jQuery(".input-weight").val();
|
|
var percentage = jQuery(".input-percentage").val();
|
|
var bar = jQuery(".input-bar").val();
|
|
|
|
|
|
// calculates and logs final values
|
|
var final = Math.floor(weighttolift * percentage);
|
|
|
|
|
|
|
|
// calculates weight of the plates needed
|
|
var finalPlateWeights = final - bar;
|
|
|
|
|
|
//This creates an arrary for the weights available
|
|
var plateWeights = [];
|
|
|
|
$( ".input-weightsavailable" ).each( function(){
|
|
plateWeights.push( $( this ).data( "weight" ));
|
|
});
|
|
|
|
|
|
|
|
//This creates an arrary for the number of plates available
|
|
var platesAvailable = [];
|
|
|
|
$( ".input-weightsavailable" ).each( function(){
|
|
platesAvailable.push( $( this ).val());
|
|
});
|
|
|
|
//calls the plate calculator function
|
|
platecalculator(plateWeights, platesAvailable, finalPlateWeights, final);
|
|
|
|
}
|
|
|
|
// var plateloader = jQuery(".b-platevisual__plates").html('<img src="images/45lbs-Plate.svg" class="b-platevisual__plate b-platevisual__plate--45">');
|
|
// console.log(plateloader);
|
|
|
|
//plate calulation function
|
|
function platecalculator ( plateWeights, platesAvailable, target, finalWeight) {
|
|
var weighthtml = "";
|
|
//iterates though the plates availble.
|
|
for (var i = 0; i < platesAvailable.length; i++) {
|
|
//checks if the plate is less than or equal to the weight of plates needed
|
|
if (plateWeights[i]*2 <= target) {
|
|
var weightToAdd = Math.floor(target / (plateWeights[i]*2));
|
|
|
|
//check if there are enough weights
|
|
var plateCheck = Math.floor(platesAvailable[i]/2);
|
|
if (weightToAdd > plateCheck) {
|
|
weightToAdd = plateCheck;
|
|
}
|
|
//subtracts added weights
|
|
target = target - weightToAdd*(plateWeights[i]*2);
|
|
|
|
//Adds plates required
|
|
if (weightToAdd > 0) {
|
|
jQuery(".input-weightsneeded").eq(i).val(weightToAdd);
|
|
//instead of putting in a string and updating all at once. append the weights each time. Make function and append and then animate. Replace this block.
|
|
}
|
|
|
|
//sets the offset
|
|
jQuery(".input-difference").text(target);
|
|
|
|
//sets the final weight
|
|
jQuery(".input-final").text(finalWeight - target);
|
|
|
|
}
|
|
}
|
|
//replaces html for plates required to bar.
|
|
jQuery(".b-platevisual__plates").html(weighthtml);
|
|
}
|
|
|
|
//Smooth Scrolling
|
|
|
|
$(document).ready(function(){
|
|
// Add smooth scrolling to all links
|
|
$("a").on('click', function(event) {
|
|
|
|
// Make sure this.hash has a value before overriding default behavior
|
|
if (this.hash !== "") {
|
|
// Prevent default anchor click behavior
|
|
event.preventDefault();
|
|
|
|
// Store hash
|
|
var hash = this.hash;
|
|
|
|
// Using jQuery's animate() method to add smooth page scroll
|
|
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
|
|
$('html, body').animate({
|
|
scrollTop: $(hash).offset().top
|
|
}, 800, function(){
|
|
|
|
// Add hash (#) to URL when done scrolling (default click behavior)
|
|
window.location.hash = hash;
|
|
});
|
|
} // End if
|
|
});
|
|
});
|
|
// });
|