事件练习作业

1.求出随机生成数的平方根

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="app">
        <input type="text" v-model.trim="num1" placeholder="输入数字求平方">
        <br>
        平方:{{square}}
        <br>
        <input type="text" v-model.trim="value" placeholder="输入数字求平方根">
        <button @click="sqrt">求平方根</button>
        <br>
        平方根:{{num2}}
        <br>
        <br><br><br>
        methods随机数(每次点击生成新数字)<br>
        <button @click="random1">methods生成随机数</button>
        {{m_rnum}}
        <br>
        computed随机数(随机生成一次数字)
        <br>
        <button @click="random2">methods生成随机数</button>
        {{c_rnum}}

        <script src="../../../js/vue.js"></script>
        <script>
            let vm = new Vue({
                el: '.app',
                data: {
                    num1: '',
                    num2: '',
                    value: '',
                    m_rnum: '',
                    c_rnum: ''
                },
                methods: {
                    random1() {
                        // console.log(Math.random()); 
                        this.m_rnum = Math.random()
                    },
                        sqrt(){
                            vm.sqr = vm.value;
                            console.log(vm.value + '的平方根是' + vm.num2);
                        },
                        random2(){
                            this.c_rnum = vm.Random
                        }
                    },
                    computed:{
// 求平方 
square(){
return this.num1 * this.num1
},
// 求平方根 
sqr:{
get(){
return this.num2 = 2
// 外面num2依旧还是空,只是这里sgr的值为2,与外面的num2无关
},
set(value){
this.num2 = Math.sqrt(value)
// 这里开始外面num2的值变成value的平方根
}
},
// 求随机数---运行一次就会被缓存起来 
Random(){
let rnum = Math.random()
 return rnum
}
                    }
})
            
        </script>
    </div>
</body>

</html>

 2.各类事件方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <div class="app">
        <button @click="click">单击</button>
        <button @dblclick="dblclick">双击</button>

        <input type="text" 
        placeholder="写下你想说的话吧"
         @focus="focus" 
         v-bind:placeholder="placeholder" 
         @blur="blur"
            @keydown.enter="keydown"
             @keyup.enter="keyup">
        <!--鼠标指针事件(以移入指定元素为例) -->
        <div class="box"
         v-bind:class="{'box-leave':isshow}"
          @mouseenter="m_enter">
        </div>
        <!-- 样式绑定:v-bind:class改变类名来改变样式 -->
    </div>
 <script src="../../../js/vue.js"></script>
        <script>
            new Vue({
                el: '.app',
                data: {
                    isshow: '',
                    placeholder: "写下你想说的话吧"
                },
                methods: {
                    // 单击事件
                    click(){
                        alert('单击出奇迹')
                    },
                    // 双击事件 
                    dblclick() {
                        alert('双击666')
                    },
                    //聚焦事件,改变input提示文字 
                    focus() {
                        this.placeholder = "无论"
                    },
                    // 失焦事件,让改变的提示文字复原 
                    blur() {
                        this.placeholder = '和射手的'
                    },
                    // 键盘按下事件,按回车弹窗,控制台会输出1 
                    keydown() {
                        alert("谢谢惠顾")
                        console.log(1);
                    },
                    // 键盘松开事件,松开回车,控制台会输出2(要把上面弹窗关掉)
                    keyup(){
                        console.log(2);
                    },
                    //鼠标路过指定触发,盒子消失
                    m_enter(){
                        this.isshow = 'true'
                    }
                }

            })
        </script>

</body>

</html>

轻映录屏 2022-10-20 10-58-19

 <!-- 事件方法 -->
        <!-- //@click :当单击元素时,发生click事件。@dbclick:当双击元素时,发生dbclick事件。
//@focus:当元素获得焦点时,发生focus事件。@blur:当元素失去焦点时发生blur事件。
//@submit:当提交表单时,发生submit事件。
//@keydown :当键盘被按下时,发生keydown事件。
//@keyup:当键盘被松开,发生keyups事件。
//@mouse enter:当鼠标指针穿过(进入)被选元素时,会发生mousedown事件。
//@mouse down:当鼠标指针移动到元素上方,并按下鼠标左键,会发生mousedown事件。
//@mouse leave:当鼠标离开被选元素时,会发生mouseleave事件。
//@mouse move:当鼠标指针在指定的元素中移动时,会发生 mousemove事件。
//@mouse out:在鼠标指针离开被选元素或任意子元素时都会被触发。
//@mouse over:当鼠标指针位于元素上方时,会发生 mouseover事件。
//@mouse up:当鼠标指针移动到元素上方,并松开鼠标左键时,会发生 mouseup事件。 -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值