微信小程序?qū)崿F(xiàn)簡(jiǎn)單計(jì)算器功能
微信小程序:簡(jiǎn)單計(jì)算器,供大家參考,具體內(nèi)容如下
對(duì)于才接觸小程序不久的人來(lái)說(shuō),想要直接上手一個(gè)實(shí)用性強(qiáng)的項(xiàng)目難度很大,想要快速熟悉小程序的使用,我們可以先嘗試著做一個(gè)簡(jiǎn)單的計(jì)算器。
運(yùn)行截圖

計(jì)算器對(duì)于界面美觀的要求并不高,只是一些view以及button控件的組合,所以并不需要在界面上費(fèi)很多功夫。重要的是邏輯層,之所以選擇計(jì)算器作為上手的第一個(gè)項(xiàng)目,因?yàn)橛?jì)算器的邏輯可簡(jiǎn)可繁,完全可以適應(yīng)新手對(duì)小程序的掌握程度。
主要代碼
js:
Page({
data: {
result:"0",
id1:"clear",
id2:"back",
id3:"time",
id4:"div",
id5:"mul",
id6:"sub",
id7:"add",
id8:"dot",
id9:"eql",
id10:"num_0",
id11:"num_1",
id12:"num_2",
id13:"num_3",
id14:"num_4",
id15:"num_5",
id16:"num_6",
id17:"num_7",
id18:"num_8",
id19:"num_9",
buttonDot:false,
is_time:false
},
clickButton: function (e) {
console.log(e);
var buttonVal = e.target.id;
var res = this.data.result;
if(this.data.is_time==true){
res=0
}
var newbuttonDot=this.data.buttonDot;
var sign;
if (buttonVal >= "num_0" && buttonVal <= "num_9") {
var num=buttonVal.split('_')[1];
if (res == "0" || ((res.length-0) -(length-1)) == "=") {
res = num;
}
else {
res = res + num;
}
}
else{
if(buttonVal=="dot")
{
if(!newbuttonDot)
{
res = res + '.';
}
}
else if(buttonVal=="clear")
{
res='0';
}
else if(buttonVal=="back")
{
var length=res.length;
if(length>1)
{
res=res.substr(0,length-1);
}
else{
res='0';
}
}
else if (buttonVal == "div" || buttonVal == "mul" || buttonVal == "sub" || buttonVal == "add")
{
if(res.length){}
else{
res=JSON.stringify(res)
}
var is_sign=res.substr(res.length-1,res.length)
if(is_sign=="+"||is_sign=="-"||is_sign=="×"||is_sign=="÷"){
res=res.substr(0,res.length-1);
}
switch(buttonVal){
case "div":
sign ='÷';
break;
case "mul":
sign ='×';
break;
case "sub":
sign='-';
break;
case "add":
sign='+';
break;
}
if(!isNaN(res.length))
{
res.length-1;
res=res+sign;
}
}
}
this.setData({
is_time:false,
result: res,
buttonDot:newbuttonDot,
});
},
equal: function(e){
var str=this.data.result;
var item= '';
var strArray = [];
var temp=0;
for(var i=0;i<=str.length;i++){
var s=str.charAt(i);
if((s!='' && s>='0' && s<='9') || s=='.'){
item=item+s;
}
else{
strArray[temp]=item;
temp++;
strArray[temp]=s;
temp++;
item='';
}
}
if(isNaN(strArray[strArray.length-1]))
{
strArray.pop();
}
var num;
var res=strArray[0]*1;
for(var i=1;i<=strArray.length;i=i+2){
num=strArray[i+1];
switch(strArray[i]){
case "-":
res = (res-0)- (num-0);
break;
case "+":
res = (res-0) + (num-0);
break;
case "×":
res = (res-0)* (num-0);
break;
case "÷":
if(num!='0')
{
res = (res-0)/ (num-0);
}
else
{
res ='∞';
break;
}
break;
}
}
this.setData({
result:res,
});
},
time:function(e){
var util=require("../../utils/util.js");
var time=util.formatTime(new Date());
this.setData({
result:time,
is_time:true
});
}})
wxml
<!--index.wxml-->
<view class="project_name">簡(jiǎn)單計(jì)算器</view>
<view class="screen_content">
<view class="screen">{{result}}</view>
</view>
<view class="content">
<view class="buttonGroup">
<button id="{{id1}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">C</button>
<button id="{{id2}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">BS</button>
<button id="{{id3}}" bindtap="time" class="buttonitem color" hover-class="shadow">
<icon type="waiting" color="#66CC33"></icon>
</button>
<button id="{{id4}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">÷</button>
</view>
<view class="buttonGroup">
<button id="{{id17}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">7</button>
<button id="{{id18}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">8</button>
<button id="{{id19}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">9</button>
<button id="{{id5}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">×</button>
</view>
<view class="buttonGroup">
<button id="{{id14}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">4</button>
<button id="{{id15}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">5</button>
<button id="{{id16}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">6</button>
<button id="{{id6}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">-</button>
</view>
<view class="buttonGroup">
<button id="{{id11}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">1</button>
<button id="{{id12}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">2</button>
<button id="{{id13}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">3</button>
<button id="{{id7}}" bindtap="clickButton" class="buttonitem color" hover-class="shadow">+</button>
</view>
<view class="buttonGroup">
<button id="{{id10}}" bindtap="clickButton" class="buttonitem1 color" hover-class="shadow">0</button>
<button id="{{id8}}" bindtap="clickButton" class="buttonitem1 color" hover-class="shadow">.</button>
<button id="{{id9}}" bindtap="equal" class="equal" hover-class="shadow">=</button>
</view>
</view>
wxss:
/**index.wxss**/
page{
background: #f5f5f5;
}
.project_name{
position:absolute;
top:25px;
width:100%;
text-align: center;
font-size: 30px;
}
.screen_content{
position: fixed;
color: #1b1717;
background: #fff;
font-size: 40px;
bottom: 390px;
text-align: right;
height:100px;
width: 100%;
word-wrap: break-word;
border-top:1px solid #a8a8a8;
border-bottom:1px solid #a8a8a8;
}
.screen{
position: absolute;
font-size: 40px;
text-align: right;
bottom:0px;
width: 96%;
left:2%;
word-wrap: break-word;
}
.content{
position: fixed;
bottom: 0;
}
.buttonGroup{
display: flex;
flex-direction: row;
}
.buttonitem{
text-align: center;
line-height: 120rpx;
width: 25%;
border-radius: 0;
}
.buttonitem1{
width: 192rpx;
text-align: center;
line-height: 120rpx;
border-radius: 0;
}
icon{
position: absolute;
top: 20%;
left: 67rpx;
}
.color{
background: #fff;
}
.equal{
width: 380rpx;
text-align: center;
line-height: 120rpx;
border-radius: 0;
background: #fff;
}
.shadow{
background: #e9ebe9;
}
后記
我這里只是對(duì)加減程進(jìn)行了粗略的處理,但是這樣的一個(gè)計(jì)算器也已經(jīng)具備了初步的功能,隨著我們掌握程度的加深,我們還可以添加平方,開(kāi)方等更復(fù)雜的功能,從而熟練掌握小程序的開(kāi)發(fā)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)計(jì)算器案例
- 微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器
- 用微信小程序?qū)崿F(xiàn)計(jì)算器功能
- 微信小程序?qū)崿F(xiàn)計(jì)算器小功能
- 微信小程序計(jì)算器實(shí)例詳解
- 微信小程序?qū)崿F(xiàn)計(jì)算器功能
- 微信小程序?qū)崿F(xiàn)簡(jiǎn)單的計(jì)算器功能
- 微信小程序?qū)崿F(xiàn)簡(jiǎn)單計(jì)算器
- 微信小程序 簡(jiǎn)易計(jì)算器實(shí)現(xiàn)代碼實(shí)例
- 微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器
相關(guān)文章
使用js和canvas實(shí)現(xiàn)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了使用js和canvas實(shí)現(xiàn)時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
javascript數(shù)組遍歷的方法實(shí)例分析
這篇文章主要介紹了javascript數(shù)組遍歷的方法,結(jié)合實(shí)例形式分析了javascript數(shù)組遍歷及相關(guān)的some、every、filter、map等方法的使用技巧,需要的朋友可以參考下2016-09-09
JavaScript中偽協(xié)議 javascript:使用探討
javascript:這個(gè)特殊的協(xié)議類型聲明了URL的主體是任意的javascript代碼,它由javascript的解釋器運(yùn)行2014-07-07
JavaScript出現(xiàn)setTimeout倒計(jì)時(shí)誤差的原因分析
setTimeout?倒計(jì)時(shí)誤差的出現(xiàn)主要與?JavaScript?的事件循環(huán)機(jī)制和計(jì)時(shí)器的執(zhí)行方式有關(guān),本文就來(lái)和大家講講具體出現(xiàn)的原因以及解決方法,需要的可以參考一下2023-06-06
JS中的hasOwnProperty()和isPrototypeOf()屬性實(shí)例詳解
hasOwnProperty()和isPrototypeOf()這兩個(gè)屬性都是Object.prototype所提供:Object.prototype.hasOwnProperty()和Object.prototype.isPropertyOf(),下面給大家介紹這兩個(gè)屬性的方法和使用,一起看下吧2016-08-08
基于JavaScript偽隨機(jī)正態(tài)分布代碼實(shí)例
這篇文章主要介紹了基于JavaScript偽隨機(jī)正態(tài)分布代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
關(guān)于layui導(dǎo)航欄不展示下拉列表的解決方法
今天小編就為大家分享一篇關(guān)于layui導(dǎo)航欄不展示下拉列表的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09

