最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小程序?qū)崿F(xiàn)簡單的計(jì)算器

 更新時(shí)間:2021年07月19日 08:55:33   作者:God is a Girl ・*  
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)簡單的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了小程序?qū)崿F(xiàn)簡單計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下

#app.json

{
  "pages": [
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarBackgroundColor": "#000000",
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "智能計(jì)算器"
  },
  "tabBar": { 
    "color": "#ff69b4",
    "selectedColor": "#0000ff",
    "backgroundColor": "#ffff00",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "計(jì) 算 機(jī)"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "回家"
      }
    ]
  }
}

#app.wsxx

/**app.wxss**/
.container {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 200rpx 0;
  box-sizing: border-box;
}

#index.wxml

<template name="calculator-key">
  <button hover-start-time="{{5}}" hover-stay-time="{{100}}" hover-class="calculator-key-hover" data-key="{{className}}" class="calculator-key {{className}}">{{display}}</button>
</template>

<view class="calculator">
  <view class="calculator-display">
    <view class="calculator-display-text">{{displayValue}}</view>
  </view>
  <view class="calculator-keypad">
    <view class="input-keys">
      <view class="function-keys" catchtap="onTapFunction">
        <template is="calculator-key" data="{{className: 'key-clear', display: clearDisplay ? 'C' : 'C'}}"/>
        <template is="calculator-key" data="{{className: 'key-sign', display: '+/-'}}"/>
        <template is="calculator-key" data="{{className: 'key-percent', display: '%'}}"/>
   </view>
      <view class="digit-keys" catchtap="onTapDigit">
        <template is="calculator-key" data="{{className: 'key-0', display: '0'}}"/>
        <template is="calculator-key" data="{{className: 'key-dot', display: '●'}}"/>
        <template is="calculator-key" data="{{className: 'key-1', display: '1'}}"/>
        <template is="calculator-key" data="{{className: 'key-2', display: '2'}}"/>
        <template is="calculator-key" data="{{className: 'key-3', display: '3'}}"/>
        <template is="calculator-key" data="{{className: 'key-4', display: '4'}}"/>
        <template is="calculator-key" data="{{className: 'key-5', display: '5'}}"/>
        <template is="calculator-key" data="{{className: 'key-6', display: '6'}}"/>
        <template is="calculator-key" data="{{className: 'key-7', display: '7'}}"/>
        <template is="calculator-key" data="{{className: 'key-8', display: '8'}}"/>
        <template is="calculator-key" data="{{className: 'key-9', display: '9'}}"/>
      </view>
    </view>
    <view class="operator-keys" catchtap="onTapOperator">
        <template is="calculator-key" data="{{className: 'key-divide', display: '÷'}}"/>
        <template is="calculator-key" data="{{className: 'key-multiply', display: '×'}}"/>
        <template is="calculator-key" data="{{className: 'key-subtract', display: '−'}}"/>
        <template is="calculator-key" data="{{className: 'key-add', display: '+'}}"/>
        <template is="calculator-key" data="{{className: 'key-equals', display: '='}}"/>
    </view>
  </view>
</view>

#index.js

Page({
  data: {
    value: null, // 上次計(jì)算后的結(jié)果,null表示沒有上次計(jì)算的結(jié)果
    displayValue: '0', // 顯示數(shù)值
    operator: null, // 上次計(jì)算符號,null表示沒有未完成的計(jì)算
    waitingForOperand: false // 前一按鍵是否為計(jì)算符號
  },

  onLoad: function (options) {
    this.calculatorOperations = {
      'key-divide': (prevValue, nextValue) => prevValue / nextValue,
      'key-multiply': (prevValue, nextValue) => prevValue * nextValue,
      'key-add': (prevValue, nextValue) => prevValue + nextValue,
      'key-subtract': (prevValue, nextValue) => prevValue - nextValue,
      'key-equals': (prevValue, nextValue) => nextValue
    }
  },

  /* AC操作,一下回到解放前 */
  clearAll() {
    this.setData({
      value: null,
      displayValue: '0',
      operator: null,
      waitingForOperand: false
    })
  },

  /* 僅清空當(dāng)前顯示的輸入值 */
  clearDisplay() {
    this.setData({
      displayValue: '0'
    })
  },

  onTapFunction: function (event) {
    const key = event.target.dataset.key;

    switch (key) {
      case 'key-clear':
        if (this.data.displayValue !== '0') {
          this.clearDisplay();
        } else {
          this.clearAll();
        }

        break;

      case 'key-sign':
        var newValue = parseFloat(this.data.displayValue) * -1

        this.setData({
          displayValue: String(newValue)
        })

        break;

      case 'key-percent':
        const fixedDigits = this.data.displayValue.replace(/^-?\d*\.?/, '')
        var newValue = parseFloat(this.data.displayValue) / 100

        this.setData({
          displayValue: String(newValue.toFixed(fixedDigits.length + 2))
        });

        break;

      default:
        break;
    }
  },

  onTapOperator: function (event) {
    const nextOperator = event.target.dataset.key;
    const inputValue = parseFloat(this.data.displayValue);

    if (this.data.value == null) {
      this.setData({
        value: inputValue
      });
    } else if (this.data.operator) {
      const currentValue = this.data.value || 0;
      const newValue = this.calculatorOperations[this.data.operator](currentValue, inputValue);

      this.setData({
        value: newValue,
        displayValue: String(newValue)
      });
    }

    this.setData({
      waitingForOperand: true,
      operator: nextOperator
    });
  },

  onTapDigit: function (event) {
    const key = event.target.dataset.key; // 根據(jù)data-key標(biāo)記按鍵

    if (key == 'key-dot') {
      // 按下點(diǎn)號
      if (!(/\./).test(this.data.displayValue)) {
        this.setData({
          displayValue: this.data.displayValue + '.',
          waitingForOperand: false
        })
      }
    } else {
      // 按下數(shù)字鍵
      const digit = key[key.length - 1];

      if (this.data.waitingForOperand) {
        this.setData({
          displayValue: String(digit),
          waitingForOperand: false
        })
      } else {
        this.setData({
          displayValue: this.data.displayValue === '0' ? String(digit) : this.data.displayValue + digit
        })
      }
    }
  }
})

#index.wxss

page {
  height:100%;
}

.calculator {
  width: 100%;
  height: 100vh;
  border:solid 1px;
  background: rgb(238, 5, 5);
  position: relative;
  box-shadow: 0px 0px 20px 0px rgb(211, 41, 41);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.calculator-display {     /*顯示器背景顏色*/
  background: #2c2a2c;
  flex: 1;
}

/*TODO:解決文本垂直居中問題,顯示器數(shù)字顏色*/
.calculator-display-text {
  padding: 0 30px;
  font-size: 3em;
  color: rgb(245, 245, 248);
  text-align: right;
}

.calculator-keypad {
  display: flex;

}

.calculator .function-keys {
  display: flex;
  color:rgb(245, 13, 13);

}

.calculator .digit-keys {
  background: #0808f7;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap-reverse;
}

.calculator-key-hover {   /*按鈕按下以后的顏色*/
  box-shadow: inset 0px 0px 25vw 0px hsla(71, 90%, 48%, 0.898);
}


.calculator-key {
background-color:aqua;

  display: block;
  width: 25vw;
  height: 25vw;
  line-height: 25vw;
  border-top: 1px solid rgb(6, 245, 78);
  border-right: 1px solid rgb(19, 241, 12);
  text-align: center;
  box-sizing: border-box;
}

.calculator .function-keys .calculator-key {
  font-size: 2em;

}

.calculator .digit-keys .calculator-key {
  font-size: 3em;
}

.calculator .digit-keys .key-0 {
  width: 50vw;
  text-align: left;
  padding-left: 9vw;
}

.calculator .digit-keys .key-dot {
  padding-top: 1em;
  font-size: 0.75em;
}

.calculator .operator-keys .calculator-key {
  color: rgb(248, 165, 10);
  border-right: 0;
  font-size: 3em;
}

.calculator .function-keys {
  background: linear-gradient(to bottom, rgb(6, 6, 240) 0%, rgb(52, 5, 240) 100%);
}

.calculator .operator-keys {
  background:  linear-gradient(to bottom, rgba(252,156,23,1) 0%, rgba(247,126,27,1) 100%);
}

.input-keys {
  width: 100%;
}

.operator-keys {
  width: 100%;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript數(shù)值千分位格式化的兩種簡單實(shí)現(xiàn)方法

    JavaScript數(shù)值千分位格式化的兩種簡單實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狫avaScript數(shù)值千分位格式化的兩種簡單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • uni-app 百度語音識別文字并展示功能實(shí)現(xiàn)

    uni-app 百度語音識別文字并展示功能實(shí)現(xiàn)

    這篇文章主要介紹了uni-app 百度語音識別文字并展示功能實(shí)現(xiàn),本文主要寫的是 uniapp實(shí)現(xiàn)語音輸入并展示在頁面上,純前端,不涉及后端,需要的朋友可以參考下
    2023-12-12
  • JS中this上下文對象使用方式

    JS中this上下文對象使用方式

    這篇文章主要為大家詳細(xì)介紹了JS中this上下文對象使用方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • JavaScript中無法通過div.style.left獲取值的解決方法

    JavaScript中無法通過div.style.left獲取值的解決方法

    這篇文章主要介紹了JavaScript中無法通過div.style.left獲取值的問題分析及解決方法,需要的朋友可以參考下
    2017-02-02
  • JS 實(shí)現(xiàn)百度搜索功能

    JS 實(shí)現(xiàn)百度搜索功能

    這篇文章給大家介紹了js實(shí)現(xiàn)百度搜索功能,代碼分為html部分和css折疊樣式部分,具體實(shí)現(xiàn)代碼大家參考下本文
    2018-02-02
  • 通過大白話理解微信小程序獲取授權(quán)

    通過大白話理解微信小程序獲取授權(quán)

    最近由于公司需要研究了一下微信小程序的開發(fā),特此記錄一下小程序獲取授權(quán)的流程,便于自己理解,下面這篇文章主要給大家介紹了關(guān)于如何通過大白話理解微信小程序獲取授權(quán)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 談?wù)凧avaScript異步函數(shù)發(fā)展歷程

    談?wù)凧avaScript異步函數(shù)發(fā)展歷程

    對大部分JavaScript開發(fā)者而言,async函數(shù)仍是新鮮事物,其發(fā)展經(jīng)歷了漫長的旅程。本文將梳理總結(jié)JavaScript異步函數(shù)的發(fā)展歷程,并表示未來async函數(shù)將成為實(shí)現(xiàn)異步的主要方式。
    2015-09-09
  • 使用javascript提交form表單方法匯總

    使用javascript提交form表單方法匯總

    這篇文章主要介紹了通過a標(biāo)簽的超鏈接提交form表單方法匯總,十分的全面細(xì)致,也很實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • 微信小程序 函數(shù)防抖 解決重復(fù)點(diǎn)擊消耗性能問題實(shí)現(xiàn)代碼

    微信小程序 函數(shù)防抖 解決重復(fù)點(diǎn)擊消耗性能問題實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序使用函數(shù)防抖解決重復(fù)點(diǎn)擊消耗性能問題實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • JS實(shí)現(xiàn)拖動(dòng)模糊框特效

    JS實(shí)現(xiàn)拖動(dòng)模糊框特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)拖動(dòng)模糊框特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論

海丰县| 岳阳市| 化德县| 环江| 郸城县| 新郑市| 黄大仙区| 陆河县| 连州市| 榕江县| 洪泽县| 辽宁省| 喀喇| 阿克陶县| 太原市| 望奎县| 彩票| 齐齐哈尔市| 曲阜市| 镇雄县| 长丰县| 乐都县| 沙洋县| 东山县| 晋中市| 福清市| 昌黎县| 镇江市| 凯里市| 石景山区| 泰宁县| 同江市| 镇江市| 郎溪县| 朝阳市| 石柱| 平阴县| 如东县| 新乡县| 安图县| 石棉县|