web网页常见特效1(原生JavaScript)

全选和不全选

在这里插入图片描述

// An highlighted block
 
 <script>
        // 1.获取元素 j_cbAll(全选按钮)
        // 全选按钮
        var j_cbAll = document.getElementById('j_cbAll'); 
 
        // 2. 获取下面所有的复选框
        var j_tbs = document.getElementById('j_tb').getElementsByTagName('input');
        //3.当全选状态选中时,让所有的复选框也选中
        j_cbAll.onclick = function () {
            //当全选按钮选中,遍历每一个小复选框,让小复选框的check和全选状态一致,就实现了全选和不全选
            for (let i = 0; i < j_tbs.length; i++) {
                j_tbs[i].checked = this.checked
            }
        }
        //4.当全部小的复选框选中时,让全选框也选中
        //通过for循环遍历每一个小的复选框为其绑定
        for (var i = 0; i < j_tbs.length; i++) {
            //关键点在于这个标志位flag
            //首先默认为true,在每一次点击都会在循环查看小复选框的选中状态,如果有一个没有选中,,全选按钮就是false
            var flag = true
            j_tbs[i].onclick = function () {
                for (var i = 0; i < j_tbs.length; i++) {
                    //
                    if (j_tbs[i].checked == false) {
                        flag = false;
                        break;
                    }
                }
                j_cbAll.checked = flag
            }
        }
    </script>

todolist

在这里插入图片描述

	//获取input输入框
	var input = document.querySelector('.inputtxt');
	//获取button按钮元素
	var btn = document.querySelector('.inputbtn');
	// 获取ul元素
	var list = document.querySelector('.list');
	//思路:当btn点击,创建一个li,并把input输入框的value内容赋值给li,然后把li添加到ul第一个位置里面,最后清空input框
	btn.onclick = function () {
		//最后发现如果没输入内容点击也会添加li,这时候就需要对input内容进行判断,如果为空就需要提示输入内容
		if (input.value.length!=0) {
			//点击之后创建li
			var li = document.createElement('li');
			// 把input输入框的值给li
			li.innerHTML = input.value;
			// 把li添加到ul的第一个位置
			list.insertBefore(li, list.children[0]);
			//清空输入框内容
			input.value = ''
		}else{
			alert('请输入内容')
		}
	}


动态创建表格
在这里插入图片描述

<table cellspacing="0">
        <thead>
            <tr>
                <th>姓名</th>
                <th>科目</th>
                <th>成绩</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>

        </tbody>
    </table>
   // 步骤1:准备好学生的数据,这一步同学们要想起之前的一个知识点:
        // 用对象存储一个物体多方面的信息
        // 用数组存储多个  结构、数据类型相同  的物体
        var datas = [{
            name: '魏璎珞',
            subject: 'JavaScript',
            score: 100
        }, {
            name: '弘历',
            subject: 'JavaScript',
            score: 80
        }, {
            name: '傅恒',
            subject: 'JavaScript',
            score: 91
        }, {
            name: '明玉',
            subject: 'JavaScript',
            score: 88
        }, {
            name: '大猪蹄子',
            subject: 'JavaScript',
            score: 99
        }];
        //思路:
        //1.首先要创建tr,(有多少个tr呢?有多少个对象就有多少个tr)
        //2.创建td(有多少个td呢,一个对象有多少个属性,就有多少个td)
        //3.将对象 的值作为td的内容
        //4.再次创建td,作为删除一栏
        //5.点击删除,删除这一栏li
        var tbody = document.querySelector('tbody');
        for (var i = 0; i < datas.length; i++) {
            // 创建tr
            var tr = document.createElement('tr');
            //遍历数组中的每一个对象
            for (var key in datas[i]) {
                // 创建td,并给td添加对象中的属性
                var td = document.createElement('td');
                td.innerHTML = datas[i][key];
                //将td添加到tr里
                tr.appendChild(td)
            }
            //把tr添加到tbody里面
            tbody.appendChild(tr);
            //创建最后一个td,作为删除栏
            var td = document.createElement('td');
            td.innerHTML = '<a href = "javascript:;">删除</a>'
            tr.appendChild(td)
            //对删除做点击操作
            var a = document.querySelectorAll('a');
            for (var i = 0; i < a.length; i++) {
                a[i].onclick = function () {
                    //点击删除,删掉li这一整行
                    this.parentNode.parentNode.removeChild(this.parentNode.parentNode)
                }
            }
        }

在这里插入图片描述

<button class="begin">开启定时器</button>
    <button class="stop">停止定时器</button>
    <div>
        <span class="hour">00</span>:
        <span class="minute">00</span>:
        <span class="second">00</span>
    </div>
    <script>

        var hour = document.querySelector('.hour');
        var minute = document.querySelector('.minute');
        var second = document.querySelector('.second');
        var begin = document.querySelector('.begin');
        var stop = document.querySelector('.stop');
        var inputTime = +new Date('2022-5-8 15:00:00');
        var timer = null
        // 响应begin的点击事件
        begin.onclick = function () {
            // 开始倒计时
            countDown() 
            timer = setInterval(()=>{
                countDown()
            },1000)
        }
        // 响应stop的点击事件
        stop.onclick = function () {
           clearInterval(timer)
        }
        function countDown() {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            minute.innerHTML = m;
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            second.innerHTML = s;
        }

    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值