移动端小功能杂记

Posted 小骚木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端小功能杂记相关的知识,希望对你有一定的参考价值。

一. 获取Url中searchParams

getQueryParamsMap: function(searchUrlWithoutQuestionMark) {
  var result = {};
  var array = searchUrlWithoutQuestionMark.split(‘&‘);
  for (var i in array) {
    var keyValue = array[i];
    if (!keyValue || keyValue.length == 0) {
      continue;
    }
    var keyValueArray = keyValue.split(‘=‘);
    if (keyValueArray.length != 2) {
      continue;
    }
    var key = decodeURI(keyValueArray[0]);
    var value = decodeURI(keyValueArray[1]);
    result[key] = value;
  }
  return result;
},

 

二. 从cookie获取数据

getValueFromCookie: function(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) {
    return parts.pop().split(";").shift();
  } else {
    return undefined
  }
},

 

三. 在cookie中存值

document.cookie = "hasAuthorization=1;path=/;expires=" + expiresDate.toGMTString();

 

四. 根据正负数设字体颜色

getFontColor: function(value, defaultNullFontColor) {
  if (!value || isNaN(value) || value === ‘0‘) {
    return defaultNullFontColor ? defaultNullFontColor : ‘font-color-grey‘;
  }
  return value > 0 ? ‘font-color-orange‘ : ‘font-color-green‘;
},

 

五. 把服务端返回的数字处理成显示的值

setDisplayValue: function(value, opts) {
  var defaultValue = (opts && opts[‘defaultValue‘]) ? opts[‘defaultValue‘] : ‘- -‘;
  if (!value || isNaN(value) || value === ‘0‘) {
    if (opts && opts[‘defaultValueForZero‘] && (value === ‘0‘ || value === 0)) {
      return opts[‘defaultValueForZero‘];
    }
    return defaultValue;
  }
  if (opts && $.type(opts[‘specialDict‘]) == ‘object‘) {
    var specialValue = opts[‘specialDict‘][value];
    if (specialValue) {
      return specialValue;
    }
  }
  if (opts && $.type(opts[‘handleValue‘]) == ‘function‘) {
    var displayValue = opts[‘handleValue‘](value);
  } else {
    var displayValue = value;
  }
  if (displayValue > 0) {
    if (opts && opts[‘noPositive‘]) {
      return defaultValue;
    }
    var addFrontSymbolValue = (opts && opts[‘addFrontSymbolForPositive‘]) ? (opts[‘addFrontSymbolForPositive‘] + displayValue) : displayValue;
    if (opts && opts[‘addBehindSymbolForPositive‘]) {
      return (addFrontSymbolValue + opts[‘addBehindSymbolForPositive‘]);
    } else if (opts && opts[‘addBehindSymbol‘]) {
      return (addFrontSymbolValue + opts[‘addBehindSymbol‘]);
    }
    return addFrontSymbolValue;
  } else {
    if (opts && opts[‘noNegative‘]) {
      return defaultValue;
    }
    var addFrontSymbolValue = (opts && opts[‘addFrontSymbolForNegative‘]) ? (opts[‘addFrontSymbolForNegative‘] + displayValue) : displayValue;
    if (opts && opts[‘addBehindSymbolForNegative‘]) {
      return (addFrontSymbolValue + opts[‘addBehindSymbolForNegative‘]);
    } else if (opts && opts[‘addBehindSymbol‘]) {
      return (addFrontSymbolValue + opts[‘addBehindSymbol‘]);
    }
    return addFrontSymbolValue;
  }
}

 

以上是关于移动端小功能杂记的主要内容,如果未能解决你的问题,请参考以下文章

移动端小问题

资深大牛带你了解源码!来看看移动端小程序技术的前世今生!小白也能看明白

01 Taro_Mall 开源多端小程序框架设计

移动端小场景优化方案

移动端小场景优化方案

移动端小场景优化方案