[Помогите] Калькулятор размеров

Тема в разделе "OpenCart", создана пользователем gnommong, 6 июл 2013.

  1. gnommong

    gnommong

    Регистрация:
    29 июн 2013
    Сообщения:
    176
    Симпатии:
    194
    Доброго всем дня. Давече вот понадобилось в магазин вставить калькулятор размеров нижнего белья.
    Нашел в сети такой вот скрипт. Кто-нибудь может помочь с его перестройкой с дюймов на сантиметры.
    И как его вставить на страницу товара?

    Т.е. вводим объём под грудью в сантиметрах и по самой груди. И выдает ответ - 70А, 80В и т.д.

    Я думаю, что многим заказчикам был бы необходим такой модуль. Заранее спасибо.

    Код:
    var BraCalculator = {
       
      /**
       * The string to be returned when the result could not be calculated.
       */
      unknownString: "Unknown",
       
      cupSizes: ["A", "B", "C", "D", "DD", "E", "EE", "F", "FF", "G", "GG", "H", "HH",
    			 "J", "JJ", "K", "KK", "L", "LL", "M", "MM", "N", "NN"],
       
      /**
       * Returns the correct bra size for given under bust and over bust measurements
       * @param {Number} underBust The measurement taken under the bust (in inches)
       * @param {Number} overBust The measurement taken over the bust (in inches)
       * @return {String} The correct bra size for the given measurements (e.g. 32C, 40DD, etc)
       */
      calculateSize: function(underBust, overBust) {
    	var bandSize = this.calculateBandSize(underBust);
    	var cupSize  = this.calculateCupSize(bandSize, overBust);
    	 
    	if (bandSize && cupSize) {
    	  return bandSize + cupSize;
    	} else {
    	  return this.unknownString;
    	};
      },
       
      /**
       * Calculates the correct band size for a given under bust measurement
       * @param {Number} underBust The measurement under the bust
       * @return {Number} The correct band size
       */
      calculateBandSize: function(underBust) {
    	var underBust = parseInt(underBust, 10);
    	return underBust + (underBust % 2) + 2;
      },
       
      /**
       * Calculates the Cup size required given the band size and the over bust measurement
       * @param {Number} bandSize The measured band size (should be an even number)
       * @param {Number} overBust The measurement taken over the bust
       * @return {String} The appropriate alphabetical cup size
       */
      calculateCupSize: function(bandSize, overBust) {
    	var bandSize = parseInt(bandSize, 10);
    	var overBust = parseInt(overBust, 10);
    	var diff	 = overBust - bandSize;
    	 
    	var result   = this.cupSizes[diff][/diff];
    	 
    	//return false if we couldn't lookup a cup size
    	return result ? result : false;
      }
    };
    And to apply it to your own pages, use something a bit like this:

    Код:
    jQuery(document).ready(function(){
      //add listeners to band and cup measurement text boxes
      jQuery('#back').keyup(Honeys.updateBraSizeCalculation);
      jQuery('#cup').keyup(Honeys.updateBraSizeCalculation);
    });
     
    var Honeys = {
      updateBraSizeCalculation: function() {
    	var back = jQuery('#back')[0].value;
    	var cup  = jQuery('#cup')[0].value;
    	 
    	if (back.length > 0 && cup.length > 0) {
    	  jQuery('#fit')[0].value = BraCalculator.calculateSize(back, cup);
    	};
      }
    };
    Вот пример размерной сетки

    [​IMG]
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Ссылку на скрипт в сети...
     
  3. gnommong

    gnommong

    Регистрация:
    29 июн 2013
    Сообщения:
    176
    Симпатии:
    194
  4. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    return underBust + (underBust % 2) + 2; - тут счисление проходит, но как логика присваивания параметров проходит - не понял, так как скрипт не полный.
     
  5. Yoda

    Yoda

    Регистрация:
    5 фев 2013
    Сообщения:
    122
    Симпатии:
    22
    70А, 80В - это американские размеры. Вряд ли они будут интересны нашим людям