事件

  1. 事件三要素
    书写一个按钮
<body>
    <button id="btn">唐伯虎</button>
</body>

目的:点击一个按钮,弹出对话框
一.事件是有三部分组成 事件源 事件类型 事件处理程序 我们也称为事件三要素
(1) 事件源 事件被触发的对象 谁 按钮

 var btn = document.getElementById('btn')

首先获取到这个按钮
(2) 事件类型 如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下
(3) 事件处理程序 通过一个函数赋值的方式 完成

 btn.onclick = function () {
        alert('点秋香')
    }

2.执行事件步骤

<body>
    <div>123</div>
</body>
<script>
    //执行事件步骤
    // 点击div 控制台输出 我被选中了
    //1.获取事件源
    var div = document.querySelector('div')
    //2.绑定事件 (注册事件)
    // div.onclick
    //3.添加事件 处理程序
    div.onclick = function () {
        console.log('我被选中了');

    }
</script>

3.操作元素之改变元素内容
html部分

 <button>显示当前系统时间</button>
    <div>某个时间</div>
    <p>1123</p>

css部分

 <style>
        div,
        p {
            width: 300px;
            height: 30px;
            line-height: 30px;
            color: #fff;
            background-color: pink;
        }
    </style>

js部分

 <script>
        // 当我们点击了按钮,  div里面的文字会发生变化
        // 1. 获取元素 
        var btn = document.querySelector('button');
        var div = document.querySelector('div');
        // 2.注册事件
        btn.onclick = function () {
            // div.innerText = '2019-6-6';
            div.innerHTML = getDate();
        }

        function getDate() {
            var date = new Date();
            // 我们写一个 2019年 5月 1日 星期三
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var dates = date.getDate();
            var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
            var day = date.getDay();
            return '今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day];
        }
        // 我们元素可以不用添加事件
        var p = document.querySelector('p');
        p.innerHTML = getDate();
    </script>

4.innerText和innerHTML的区别
html部分

 <div></div>
    <p>
        我是文字
        <span>123</span>
    </p>

(1)innerText 不识别html标签 非标准 去除空格和换行

  var div = document.querySelector('div')
    // div.innerText = '<strong>今年是</strong>2020'

(2)innerHTML 识别html标签 W3C标准 保留空格和换行的

 div.innerHTML = '<strong>今年是</strong>2020'

(3)这两个属性是可读写的 可以获取元素里面的内容

 var p = document.querySelector('p')
    console.log(p.innerText);
    console.log(p.innerHTML);

5.操作元素之修改元素属性
html部分

  <button id="ldh">刘德华</button>
    <button id="zxy">张学友</button><br>
    <img src="images/ldh.jpg" alt="" title="刘德华">

js部分

  //修改元素属性
    // 1.获取元素
    var ldh = document.getElementById('ldh')
    var zxy = document.getElementById('zxy')
    var img = document.querySelector('img')
    // 2.注册事件 处理程序
    zxy.onclick = function () {
        img.src = 'images/zxy.jpg'
        img.title = '张学友'
    }
    ldh.onclick = function () {
        img.src = 'images/ldh.jpg'
        img.title = '刘德华'
    }

6.操作元素之表单属性设置
html部分

 <button>按钮</button>
    <input type="text" value="输入内容">

js部分

  // 1.获取元素
    var btn = document.querySelector('button')
    var input = document.querySelector('input')
    // 2.注册事件 处理程序
    btn.onclick = function () {
        // input.innerHTML = '点击了';  这个是 普通盒子 比如 div 标签里面的内容
        // 表单里面的值 文字内容是通过 value 来修改的
        input.value = '被点击了';
        // 如果想要某个表单被禁用 不能再点击 disabled  我们想要这个按钮 button禁用
        // btn.disabled = true;
        this.disabled = true;
        // this 指向的是事件函数的调用者 btn
    }

7.操作元素之修改样式属性

 // 1.获取元素
    var div = document.querySelector('div')
    //注册事件 处理程序
    div.onclick = function () {
        // div.style  里面的属性 采取驼峰命名法
        this.style.backgroundColor = 'pink'
        this.style.width='250px'
    }

8.循环精灵图

  //1.获取元素  所有的小 li
    var lis = document.querySelectorAll('li')
    for (var i = 0; i < lis.length; i++) {
        // 让索引号 乘以 44 就是每个li 的背景y坐标  index就是我们的y坐标
        var index = i * 44;
        lis[i].style.backgroundPosition = '0 -' + index + 'px';
    }

算法很重要
9.显示隐藏文本框内容
css部分

  <style>
        input {
            color: #999;
        }
    </style>

html部分

<input type="text" value="手机">

js部分

// 1.获取元素
    var text = document.querySelector('input');
    // 2.注册事件 获得焦点事件 onfocus 
    text.onfocus = function () {
        // console.log('得到了焦点');
        if (this.value === '手机') {
            this.value = '';
        }
        // 获得焦点需要把文本框里面的文字颜色变黑
        this.style.color = '#333';
    }
    // 3. 注册事件 失去焦点事件 onblur
    text.onblur = function () {
        // console.log('失去了焦点');
        if (this.value === '') {
            this.value = '手机';
        }
        // 失去焦点需要把文本框里面的文字颜色变浅色
        this.style.color = '#999';
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值