项目遇到困难,希望获得这个项目的CSS代码和JS代码以及相关注释,以便能过运行此项目。

img


这是index布局结果,要求CSS代码和JS代码能成功运行它


<style>
    .container{background:#f86984;width:540px;margin:0 auto;padding:30px 20px;border-radius:15px;color:#fff;font-weight:bold;box-sizing:border-box;}
    .container .title{line-height:30px;font-size:25px;}
    .container input,.container button{background:#56606e;border:solid 1px #fff;border-radius:5px;color:#fff;font-weight:bold}
    .container .input{display:block;height:60px;width:100%;margin:10px 0 20px;text-align:right;font-size:18px}
    .container .btncontainer{border:solid 2px #fff;border-radius:10px;padding:5px 10px;background:#e99fa9;display:flex;flex-wrap:wrap;justify-content:space-between}
    .container .btncontainer button{width:80px;box-sizing:border-box;margin-right:10px;margin-bottom:10px;font-size:25px;height:50px}
    .container .btncontainer button.op{width:95px;background:#86ed9d}
    .container .btncontainer button:nth-child(5n){margin-right:0}
    .container .btncontainer button.nomb{margin-bottom:0}
</style>
<div class="container">
    <div class="title">@我的计算器</div>
    <input type="text" class="input" readonly id="txt" />
    <div class="btncontainer">
        <button>7</button>
        <button>8</button>
        <button>9</button>
        <button class="op" style="background:#f94159">Back</button>
        <button class="op" style="background:#f94159">C</button>
        <button>4</button>
        <button>5</button>
        <button>6</button>
        <button class="op">X</button>
        <button class="op">/</button>
        <button>1</button>
        <button>2</button>
        <button>3</button>
        <button class="op">+</button>
        <button class="op">-</button>
        <button class="nomb">0</button>
        <button class="nomb">00</button>
        <button class="nomb">.</button>
        <button class="op nomb">%</button>
        <button class="op nomb" style="background:#3290ff">=</button>
    </div>
</div>
<script>
    function clickHandler() {//按钮点击事件处理函数
        let t = this.innerText.trim();
        if (t == 'C') txt.value = '';//清除
        else if (t == 'Back') txt.value = txt.value.substring(0, txt.value.length - 1);//删除最后一个字符
        else if (t == '=') {//计算
            try {
                let result = eval(txt.value);
                txt.value = result;
            }
            catch (e) { alert('表达式有错误!') }
        }
        else {//表达式组合
            if (t == 'X') t = '*';
            txt.value += t;
        }
    }

    let txt = document.getElementById('txt');//获取输入框容器
    let buttons = document.querySelectorAll('.btncontainer button');//获取按钮
    //按钮事件绑定
    for (let btn of buttons) btn.onclick = clickHandler;
</script>
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/241107
  • 这篇博客你也可以参考下:js利用indexOf方法找到字符串中某个字母出现的位置和次数
  • 除此之外, 这篇博客: 微信小程序登录与注册验证码倒计时的效果实现中的 三,index.js实现倒计时效果 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 1,首先看下倒计时实现的部分。

      上图红框里是我们实现倒计时的核心代码,可以看到我们主要是用了setInterval 这个方法来实现每个1s的计时器。
      这里我们定义一个countDownTime,初始值为6s,然后我们每隔1s,对countDownTime做减1操作,直到countDownTime的值小于2,也就是等于1时,我们用clearInterval方法取消计时器。
    • 2,动态改变按钮文字颜色。
      这里之前经常有同学问过,怎么在js里动态改变小程序组件的样式。其实小程序这点做的不如vue好,不能在js里获取到组件的实例。所以我们就要换个方式了。
    <!-- 这里我们同在在wxml里写style来实现样式的动态改变 -->
    <text class="code" style="color:{{codeColor}};" >获取验证码</text>
    

    这个时候我们在去看第一个,倒计时里写的下面这段代码。这里就是用来动态改变按钮上文字颜色的方法。

         if (countDownTime < 2) {
            that.setData({
              codeColor: "#0271c1",
              codeText: "获取验证码"
            })
          } else {
            that.setData({
              codeColor: "#e6252b",
              codeText: "60s"
            })
          }
          
    

    我们这里还有做一步处理,就是在倒计时过程中,用户不能再次点击获取验证吗的按钮,获取点击时要给用户提示。

    • 下面把index.js的完整代码贴出来给大家
    //老师微信2501902696
    let timeNum = 6 //60秒倒计时
    let countDownTime = timeNum
    let timer; //计时器
    Page({
      data: {
        codeColor: "#0271c1",
        codeText: "获取验证码"
      },
      //获取验证码
      getCode() {
        if (countDownTime == timeNum) {
          this.setInterval()
          this.setData({
            codeColor: "#e6252b",
            codeText: countDownTime + "s"
          })
        } else {
          wx.showToast({
            title: '请等待验证码',
            icon: "none"
          })
        }
      },
    
      // 计时器
      setInterval: function() {
        const that = this
        timer = setInterval(function() { // 设置定时器
          countDownTime--
          if (countDownTime < 2) {
            clearInterval(timer)
            that.setData({
              codeColor: "#0271c1",
              codeText: "获取验证码"
            })
            countDownTime = timeNum
          } else {
            that.setData({
              codeColor: "#e6252b",
              codeText: countDownTime + "s"
            })
          }
          console.log(countDownTime + "s")
        }, 1000)
      },
    })
    
    

    这样我们就能实现微信小程序在登录或者注册时实现验证码倒计时的效果了。