小程序計(jì)算器---界面部分

起因

那天蘭姐突然就說昼弟,前端面試搞什么CSS3特效那種很炫的其實(shí)面試官是不在意的。倒不如用JS實(shí)現(xiàn)一個(gè)簡單的計(jì)算器來的實(shí)在奕筐。所以舱痘,我就突然來了興致,用小程序做個(gè)計(jì)算器來試試水离赫?

經(jīng)過

2017.8.25日下午五點(diǎn)開始:

1芭逝、界面設(shè)計(jì)

界面圖1

整體使用flex布局。界面分成兩部分渊胸,上面是數(shù)據(jù)展示區(qū)域旬盯,下面是數(shù)據(jù)操作區(qū)域。

如上圖所示:初始界面要有一個(gè)0的展示,下面分成title(用來折疊下面操作區(qū)域)和operate(用來進(jìn)行數(shù)據(jù)計(jì)算)兩個(gè)部分瓢捉。operate又分為num(數(shù)字频丘,刪除,歸零泡态,負(fù)值)和symbol( 加減乘除等。紅色區(qū)域)兩個(gè)部分迂卢。

1某弦、title部分:采用flex布局,中間的三條橫線是用固定寬度的三個(gè)view設(shè)置border-top實(shí)現(xiàn)而克。由于是flex布局所以整體垂直水平居中(用justify-content: space-around;align-items: center;實(shí)現(xiàn))靶壮。
2、operate部分:采用flex布局员萍,左三右一(num的flex:3;symbol的flex:1)腾降。
3、num與symbol:采用flex布局碎绎,分成五部分螃壤。設(shè)置flex-description: column;以及子元素flex:1使其垂直五等分。

2筋帖、icon引入

在小程序中引入iconfont可真是不容易奸晴。不同于h5頁面,小程序中沒有對(duì)應(yīng)的i標(biāo)簽日麸,沒辦法用&#xe61c類似這種的字符編碼來實(shí)現(xiàn)一個(gè)icon寄啼,說了這么多廢話,到底怎么解決呢代箭?

解決方法:

1墩划、還是在淘寶的iconfont上選擇自己想要的icon圖標(biāo),與往常一樣嗡综,選擇好之后乙帮,下載到本地。找到.ttf結(jié)尾的字體文件蛤高。沒有顯示隱藏文件名稱的如下圖:

ttf文件

2蚣旱、這時(shí)候用到 https://transfonter.org/ 這個(gè)網(wǎng)站將我們的字體文件轉(zhuǎn)換成base64格式的編碼。如下圖:

網(wǎng)站截圖

3戴陡、將轉(zhuǎn)換好編碼的文件下載下來塞绿。找到stylesheet.css文件。將形如下圖的代碼片段拷貝下來

stylesheet

4恤批、將上面代碼放到你要用的.wxss异吻。不過我還是建議放在一個(gè)公共區(qū)域,比如app.wxss里面或者一個(gè)其他的.wxss里面,在用到的時(shí)候@import進(jìn)去诀浪。
5棋返、最重要的一步啊。這時(shí)候很多小伙伴估計(jì)還是懵逼的雷猪。要怎么用這些圖標(biāo)呢睛竣。我們知道每個(gè)圖標(biāo)都有自己的形如 &#xe61c 的字符表示。那么我們就可以在.wxml中用一個(gè)text標(biāo)簽并對(duì)其用css修飾后就可以有相應(yīng)的圖標(biāo)了求摇。如下所示:

    //html部分射沟,iconfont類必須要,后面的icon-c是我自定義的         
    <text class="iconfont icon-c"></text>
    //css部分与境。假設(shè)我們現(xiàn)在就要用 &#xe61c 這個(gè)圖標(biāo)验夯,那么就在其content處設(shè)為 \e61c
    .icon-c:after {
     font-family: "iconfont";
    content: '\e61c';
    font-size: 80rpx;
    color:#ffffff;
  }

好的,現(xiàn)在你就會(huì)發(fā)現(xiàn)摔刁,你的圖標(biāo)已經(jīng)出現(xiàn)了破衔,接下來把對(duì)應(yīng)的圖標(biāo)填充到對(duì)應(yīng)的格子處即可魔招,如下圖所示:。我想這部分應(yīng)該對(duì)要用到iconfont字體庫小程序開發(fā)者有一些作用。歡迎補(bǔ)充父泳。關(guān)于腳本實(shí)現(xiàn)計(jì)算的典尾,下周繼續(xù)開發(fā)脚作。

第一次選出的字體

這是第一次選出的圖標(biāo)放椰,參差不齊。有沒有前輩告訴我怎么選出很統(tǒng)一的圖標(biāo)寺擂。

第二次選出的字體

相比于第一次已經(jīng)有了很大進(jìn)步暇务。但是這個(gè)C仍有問題,后續(xù)我會(huì)繼續(xù)優(yōu)化怔软。

8.26~8.27 休息中垦细。。挡逼。括改。

3、界面一些效果設(shè)計(jì)與實(shí)現(xiàn):

2017年8月28日晚上重新開始:

點(diǎn)擊背景色修改效果

在寫之前家坎,請(qǐng)?jiān)试S我好好吐槽一下小程序嘱能。你為什么沒有DOM操作,你為什么與這么多東西格格不入虱疏∪锹睿可是,還是要堅(jiān)持寫完這個(gè)小程序做瞪。
首先是界面每個(gè)區(qū)塊點(diǎn)擊的變色效果对粪,沒有DOM操作好難受坝叶场:

區(qū)塊點(diǎn)擊變色效果

小程序如何來控制某個(gè)區(qū)塊改變其CSS呢?我們就以這個(gè)8為例:

首先著拭,我們?cè)?這個(gè)區(qū)塊上動(dòng)態(tài)地定義一個(gè)這個(gè)區(qū)塊自己的eightColor字段纱扭,wxtm代碼如下所示:

    <!--  wxtm代碼部分-->  
    <view class="num-item" bindtap="eight" style="background: {{eightColor}}">
        <text class="iconfont icon-eight"></text>
    </view>

然后,在js文件中的data中定義eightColor屬性儡遮,如下所示:

    data: {
        //.....其他屬性
        eightColor: '#454545',
        //......其他屬性
    }

這里我們就可以固定顯示8這一區(qū)塊的背景色乳蛾。接著通過8這個(gè)區(qū)塊綁定的eight事件,動(dòng)態(tài)地改變eightColor的值鄙币,即可達(dá)到改變區(qū)塊背景顏色的效果屡久,代碼如下所示:

eight: function () {
  var that = this;
    that.setData({
    eightColor: '#383838',
  });
}

至于點(diǎn)擊后恢復(fù)原色的與改變顏色的思路差不多“疲可以設(shè)置一個(gè)定時(shí)器,點(diǎn)擊后xxx ms后將eightColor值恢復(fù)即可糙及。

數(shù)值的顯示

接下來详幽,最重要的一個(gè)界面部分就是數(shù)值在上方界面上的一個(gè)顯示了。我這里的思路很簡單:

1浸锨、展示區(qū)域由正在輸入的數(shù)字和已經(jīng)輸入過的部分構(gòu)成 show = currentNum + lastShow


2唇聘、當(dāng)輸入數(shù)字時(shí),動(dòng)態(tài)改變currentNum即可柱搜。比如輸入了5迟郎,那么 currentNum = currentNum + "5"
currentNum 初始值為""。一個(gè)空字符串聪蘸。


3宪肖、當(dāng)輸入操作符時(shí),比如 + 健爬,那么currentNum直接加入到lastShow中控乾, lastShow = lastShow + currentNum即可。同時(shí)currentNum置空娜遵。如果再輸入操作符時(shí)蜕衡,不做顯示。

接下來是整個(gè)小程序的JavaScript部分设拟,很多功能的實(shí)現(xiàn)的思路和代碼圖慨仿。

github地址 覺得不錯(cuò)的可以點(diǎn)個(gè)星星給我好嗎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纳胧,一起剝皮案震驚了整個(gè)濱河市镰吆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躲雅,老刑警劉巖鼎姊,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡相寇,警方通過查閱死者的電腦和手機(jī)慰于,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唤衫,“玉大人婆赠,你說我怎么就攤上這事〖牙” “怎么了休里?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赃承。 經(jīng)常有香客問我妙黍,道長,這世上最難降的妖魔是什么瞧剖? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任拭嫁,我火速辦了婚禮,結(jié)果婚禮上抓于,老公的妹妹穿的比我還像新娘做粤。我一直安慰自己,他們只是感情好捉撮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布怕品。 她就那樣靜靜地躺著,像睡著了一般巾遭。 火紅的嫁衣襯著肌膚如雪肉康。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天恢总,我揣著相機(jī)與錄音迎罗,去河邊找鬼。 笑死片仿,一個(gè)胖子當(dāng)著我的面吹牛纹安,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播砂豌,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼厢岂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阳距?” 一聲冷哼從身側(cè)響起塔粒,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筐摘,沒想到半個(gè)月后卒茬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體船老,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年圃酵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柳畔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡郭赐,死狀恐怖薪韩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捌锭,我是刑警寧澤俘陷,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站观谦,受9級(jí)特大地震影響拉盾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豁状,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一盾剩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧替蔬,春花似錦、人聲如沸屎暇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽根悼。三九已至凶异,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挤巡,已是汗流浹背剩彬。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留矿卑,地道東北人喉恋。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像母廷,于是被迫代替她去往敵國和親轻黑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容