JavaScript day04

01 轮播图练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单轮播图</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .wp{
            width: 250px;
            height: 400px;
            border: 1px #f00 solid;
            margin: 40px auto 0;
            position: relative;
            overflow: hidden;
        }
        #list{
            display: flex;
            width: 1000px;
            transform: translateX(0);

            /* 添加过渡动画 */
            transition: all 1s;
        }
        #list img{
            width: 250px;
            height: 400px;
        }

        #box{
            width: 100%;
            height: 40px;
            position: absolute;
            background: rgba(0, 0, 0, 0.5);
            left: 0;
            bottom: 0;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        #box span{
            width: 10px;
            height: 10px;
            background: #fff;
            border-radius: 50%;
            margin: 0 5px;
            cursor: pointer;
        }
        #box span:hover{
            background: #f60;
            box-shadow: 0 0 5px 5px #ccc;
        }
        .change{
            width: 40px;
            height: 40px;
            background: #f60;
            color: #fff;
            line-height: 40px;
            position: absolute;
            top: 180px;
            cursor: pointer;
            text-align: center;
        }
        #left{left: 0;}
        #right{right: 0;}
    </style>
</head>
<body>
    <!-- 外层的div,包含图片列表 -->
    <div class="wp">
        <div id="list">
            <img src="../images/1.png" alt="">
            <img src="../images/2.png" alt="">
            <img src="../images/3.png" alt="">
            <img src="../images/4.png" alt="">
        </div>

        <!-- 分页器 -->
        <div id="box">
            <span></span>
            <span></span>
            <span></span>
            <span></span>
        </div>

        <!-- 左右切换 -->
        <span class="change" id="left"><</span>
        <span class="change" id="right">></span>
    </div>
</body>
</html>
<script>
    // 获取需要点击的分页器
    let box = document.getElementById('box');
    let spanBox = box.getElementsByTagName('span');

    // 获取列表元素
    let list = document.getElementById('list');

    // 点击分页器
    spanBox[0].onclick = function(){
        list.style.transform = 'translateX(0)';
        n=0;
    };
    spanBox[1].onclick = function(){
        // console.log('点击了第二个图片');
        list.style.transform = 'translateX(-250px)';
        n=1; 
    };
    spanBox[2].onclick = function(){
        list.style.transform = 'translateX(-500px)';
        n=2;
    };
    spanBox[3].onclick = function(){
        list.style.transform = 'translateX(-750px)';
        n=3;
    };


    // 获取左右按钮
    let leftBtn = document.getElementById('left');
    let rightBtn = document.getElementById('right');

    // 设置当前是第一张图片, 从0开始
    let n = 0;

    // 点右边的按钮
    rightBtn.onclick = function(){
        n++;
        n = n>=3 ? 3 :n;
        console.log(n);
        list.style.transform = 'translate(-'+n*250+'px)'
    }

    // 点左边的按钮
    leftBtn.onclick = function(){
        // n = n<=0 ? 0 : --n;   //先运算再赋值
        n<=0 ? n=0 : n--;  //在三元中的表达式赋值
        console.log(n);
        list.style.transform = 'translate(-'+n*250+'px)'
    }
</script>

02 if语句

程序结构
1.基本结构(顺序执行)
2.分支结构(分支语句)
3.循环结构(循环语句)
分支语句
if(判断条件){
	只有当if中的判断条件为true时,{}中的代码才能被执行,如果判断条件不为true,则跳过{}中的代码,程序继续往下执行
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句</title>
</head>
<body>
    
</body>
</html>
<script>
    
	if (0 || 6){
    	console.log('苏妲己');
	}
	console.log('武曌');
</script>
if(判断条件){
	如果判断条件为true,则执行这里的代码
}else{
	如果判断条件 不为 true,则执行else中的代码
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句</title>
</head>
<body>
    
</body>
</html>
<script>
	let num1 = 20;
	if(num1>100){
    	console.log('20>100');
	}else{
    	console.log('20<100');
	}
</script>
if可以单独使用,else必须结合if一起使用;else指的是除了满足if条件之外的所有条件

03 if语句练习

分支语句的级联语句
if(判断条件){
	
}else{

}
在使用if语句的时候,else的范围有时候会比较大,因此可以使用else
if对具体的情况进行细分
else if 可以根据情况设置多个
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句练习</title>
</head>
<body>
    数据1:<input type="number" id="num1" value=""> <br/>
    数据2:<input type="number" id="num2" value=""> <br/>
    <button id="btn">比较大小</button>
</body>
</html>
<script>
  
    let score = 70;
    if (score == 100) {
        console.log('奖励一个对象');
    } else if (score >= 90) {
        console.log('优秀');
    } else if (score >= 80) {
        console.log('良好');
    } else if (score >= 70) {
        console.log('中等');
    } else if (score >= 60) {
        console.log('及格');
    } else {
        console.log('开除学籍');
    }

    if(3>4){
        console.log('周末出去玩');
    }else{
        console.log('周末不出去玩');
    }

    3>4?console.log('周末出去玩'):console.log('周末不出去玩');




    let num1 = document.getElementById('num1');
    let num2 = document.getElementById('num2');
    let btn = document.getElementById('btn');

    btn.onclick = function (){
        if(num1.value>num2.value){
            alert('下课');
        }else if(num1.value==num2.value){
            alert('吃饭')
        }else{
            alert('放假');
        }
    }

</script>
判断是否为闰年
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>if语句练习</title>
</head>
<body>
    输入年份: <input type="number" id="year" value="">
    <button id="btn2">查看是否是闰年</button>
</body>
</html>
<script>

    /*
    判断闰年的条件:
        1.能被400整除
        2.能被4整除,不能被100整除
    */ 
    let year = document.getElementById('year');
    let btn2 = document.getElementById('btn2');
    btn2.onclick = function(){
        if(year.value%400==0){
            alert(year.value+'年是闰年');
        }else if(year.value%4==0 && year.value%100!=0){
            alert(year.value+'年是闰年')
        }
        else{
            alert(year.value+'年是平年')
        }
    }

</script>

04 水仙花数练习

数学方法
Math.floor(num)  把数字num向下取整,舍弃小数
Math.ceil(num) 把数字num向上取整,舍弃掉小数,整数部分加1
Math.round(num) 把数字num四舍五入
水仙花数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>水仙花数</title>
</head>
<body>
    <input type="number" value="" id="txt">
    <button id="btn">判断</button>
</body>
</html>
<script>
   console.log(Math.floor(3.95)); 
   console.log(Math.ceil(3.05));
   console.log(Math.round(3.45));

   let txt = document.getElementById('txt');
   let btn = document.getElementById('btn');
   btn.onclick = function(){
        let v = txt.value - 0;
        let v1 = Math.floor(v/100);
        let v2 = Math.floor(v%100/10);
        let v3 = Math.floor(v%10);
        if(v==v1*v1*v1+v2*v2*v2+v3*v3*v3){
            alert(v+'是水仙花数');
        }else{
            alert(v+'不是水仙花数');
        }
    };
</script>

05 switch语句

switch 语句,特点是 默认贯穿整个结构,可以使用关键字break阻止贯穿
break的作用是阻断当前结构语句,可以阻断 switch 也可以阻断循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>switch语句</title>
</head>
<body>

</body>
</html>
<script>
    /*
    switch 语句,特点是 默认贯穿整个结构,可以使用关键字break阻止贯穿
    break的作用是阻断当前结构语句,可以阻断 switch 也可以阻断 循环
    */
    let count = 80;
    switch (count) {
        case 30:
            console.log('天涯何处觅知音');
            break;//阻断switch 语句,跳出switch
        case 70:
            console.log('一曲肝肠断');

        // 如果上面的条件都不能满足,则会执行default里面的代码
        default:
            console.log('天涯何处无返芳草+default');
            break;
    }



    let num = 1;
    switch (num) {
        case 1:
            console.log('当前是1');
            num++;
        case 2:
            console.log('当前是2');
            num++;
            break;
        
        default:
        console.log('当前是default');
            num--;
            break;
    }
    console.log(num);
</script>

06 for循环

js中的循环
	1.for循环
	2.while
	3.do-while

for(循环变量的初始值;循环条件;循环变量的增值){
	循环体(就是循环要执行的代码)
}
对循环条件的理解,是变量满足循环条件的时候,才会执行循环体中的代码
只有循环结束,循环后面的代码才能执行
执行过程:
	1.首先判断循环变量的初始值,是否满足循环条件
	2.如果满足循环条件,则执行循环体中的代码
	3.循环体中的代码执行完毕,执行循环变量的增值操作
	4.判断循环变量的当前值是否满足循环条件
	5.在下一次循环中依次执行 2 3 4 步骤
	6.直到循环变量的当前值不满足 循环条件,跳出当前循环
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>for循环</title>
</head>
<body>

</body>
</html>
<script>
   
    for (i=0;i<5;i++) {
        console.log(i);
    }
    
    console.log('世上无难事只怕有心人'+i);

    let sum = 0;
    for(let a=0;a<=100;a++){
        sum+=a;
    }
    console.log(sum);

    // 球1~100的偶数和,包含1和100
    let sum1=0;
    for(let n=1;n<=100;n++){
        if(n%2==0){
            sum1+=n;    
        }
    }
    console.log(sum1);

    let sum2=0;
    for(let m=0;m<=100;m+=2){
        sum2+=m;
    }
    console.log(sum2);


    // 求1~100中,所有3的倍数之和
    let sum3=0;
    for(let s=0;s<=100;s+=3){
        sum3+=s;
    }
    console.log(sum3);

</script>
continue用法
continue   当在循环体中执行continue之后,它后面的所有代码都不执行,直接跳出当前循环,执行下一次循环
break  当在循环体中执行break之后,直接终止当前的for循环
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>for循环</title>
</head>
<body>

</body>
</html>
<script>
    //continue 用法 
    console.log('========================================');
    for(let m=0;m<5;m++){
        if(m%2==0){
            continue;//停止当前一次循环,直接进入下一次循环
        }
        console.log(m);
    }
    // break 用法
    for(let m=1;m<10;m++){
        if(m%3==0){
            break;//终止当前for循环
        }
        console.log(m);
    }
</script>

输出所有的水仙花数

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>输出所有的水仙花数</title>
</head>
<body>

</body>
</html>
<script>
    for (v=0;v<1000;v++){
        // let v = txt.value - 0;
        let v1 = Math.floor(v/100);
        let v2 = Math.floor(v%100/10);
        let v3 = Math.floor(v%10);
        if(v==v1*v1*v1+v2*v2*v2+v3*v3*v3){
            console.log(v+'是水仙花数');
        }
    }
       
</script>

最大公约数和最小公倍数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>最大公约数</title>
</head>
<body>
    数据1: <input type="number" id="num1">
    数据2: <input type="number" id="num2"><br/>
    <button id="btn">最大公约数1</button>
    <button id="btn1">最大公约数2</button>
    <button id="btn2">最小公倍数3</button><br/>
    最大公约数: <input type="number" id="num3">
    最小公倍数: <input type="number" id="num4">
</body>

</html>
<script>
    let num1 = document.getElementById('num1');
    let num2 = document.getElementById('num2');
    let num3 = document.getElementById('num3');
    let num4 = document.getElementById('num4');
    let btn = document.getElementById('btn');
    let btn1 = document.getElementById('btn1');
    let btn2 = document.getElementById('btn2');

    btn.onclick = function () {
        let val1 = num1.value - 0;
        let val2 = num2.value - 0;

        // console.time() 测试运行时间
        console.time('时间');

        let v=0;
        for(let i=0;i<val1&&i<=val2;i++){
            if(val1%i==0 && val2%i==0){
                console.log('最大公约数'+i);
                v=i;
            }
        }
        num3.value=v;
        console.timeEnd('时间');
    };

    btn1.onclick = function(){
        let val1 = num1.value - 0;
        let val2 = num2.value - 0;

        // 求出最小值
        let min = val1>val2 ? val2 : val1;
        for(let i=min;i>=0;i--){
            if(val1%i==0 && val2%i==0){
                num3.value=i;
                console.log('最大公约数'+i);
                // break;
            }
        }
    };


    // 最小公倍数
    btn2.onclick = function(){
        let val1 = num1.value - 0;
        let val2 = num2.value - 0;

        let min = val1>val2 ? val2 : val1;
        for(let i=min;i>=0;i++){
            if(val1%i==0 && val2%i==0){
                num3.value=i;
                num4.value=val1*val2/num3.value;
                console.log(num4.value+'最小公倍数');
                break;
            }
        }
    };
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值