也是个对象,这个对象里有事件触发时的相关信息
例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息
使用场景:
语法:如何获取
- 在事件绑定的回调函数的第一个参数就事件对象
- 一般命名为event、ev、e
- 元素.addEventListener('click',function (e) {
-
- })
- <button>点击button>
- <script>
- const btn = document.querySelector('button')
- btn.addEventListener('click',function (e) {
- console.log(e);
- })
- script>
部分常用属性
- type
- 获取当前的事件类型
- clientX / clientY
- 获取光标相对于浏览器可见窗口左上角的位置
- offsetX / offsetY
- 获取光标相对于当前DOM元素左上角的位置
- key
- 用户按下的键盘键的值
- 不提倡使用keyCode
- <button>点击button>
- <input type="text">
- <script>
- const input = document.querySelector('input')
- input.addEventListener('keyup',function (e){
- // console.log(11)
- // console.log(e.key)
- if (e.key === 'Enter'){
- console.log('我按下了回车键')
- }
- })
- script>
- body>
需求:按下回车键盘,可以发布信息
分析:
- 用到按下键盘事件keydown或者keyup都可以
- 如果用户按下的是回车键盘,则发布信息
- 让留言信息模块显示,把拿到的数据渲染到对应标签内部
- DOCTYPE html>
-
-
-
-
-
评论回车发布 -
- .wrapper {
- min-width: 400px;
- max-width: 800px;
- display: flex;
- justify-content: flex-end;
- }
-
- .avatar {
- width: 48px;
- height: 48px;
- border-radius: 50%;
- overflow: hidden;
- background: url(./avatar.jpg) no-repeat center / cover;
- margin-right: 20px;
- }
-
- .wrapper textarea {
- outline: none;
- border-color: transparent;
- resize: none;
- background: #f5f5f5;
- border-radius: 4px;
- flex: 1;
- padding: 10px;
- transition: all 0.5s;
- height: 30px;
- }
-
- .wrapper textarea:focus {
- border-color: #e4e4e4;
- background: #fff;
- height: 50px;
- }
-
- .wrapper button {
- background: #00aeec;
- color: #fff;
- border: none;
- border-radius: 4px;
- margin-left: 10px;
- width: 70px;
- cursor: pointer;
- }
-
- .wrapper .total {
- margin-right: 80px;
- color: #999;
- margin-top: 5px;
- opacity: 0;
- transition: all 0.5s;
- }
-
- .list {
- min-width: 400px;
- max-width: 800px;
- display: flex;
- }
-
- .list .item {
- width: 100%;
- display: flex;
- }
-
- .list .item .info {
- flex: 1;
- border-bottom: 1px dashed #e4e4e4;
- padding-bottom: 10px;
- }
-
- .list .item p {
- margin: 0;
- }
-
- .list .item .name {
- color: #FB7299;
- font-size: 14px;
- font-weight: bold;
- }
-
- .list .item .text {
- color: #333;
- padding: 10px 0;
- }
-
- .list .item .time {
- color: #999;
- font-size: 12px;
- }
-
-
-
-
-
-
-
-
- 0/200字
-
-
-
-
-
-
清风徐来
-
大家都辛苦啦,感谢各位大大的努力,能圆满完成真是太好了[笑哭][支持]
-
2022-10-10 20:29:21
-
-
-
-
- const tx = document.querySelector('#tx')
- const total = document.querySelector('.total')
- const item = document.querySelector('.item')
- const text = document.querySelector('.text')
- // 1. 当我们文本域获得了焦点,就让total 显示出来
- tx.addEventListener('focus',function (){
- total.style.opacity = 1
- })
- // 2. 当我们文本域失去了焦点,就让total隐藏出来
- tx.addEventListener('blur',function (){
- total.style.opacity = 0
- })
- // 3. 检测用户输入
- tx.addEventListener('input',function () {
- // console.log(tx.value.length); // 得到输入的长度
- total.innerHTML = `${tx.value.length}/200字`
- })
-
- // 4. 按下回车发布评论
- tx.addEventListener('keyup',function (e) {
- // 只有按下的是回车键,才会触发
- // console.log(e.key)
- if(e.key === 'Enter'){
- // 如果用户输入的不为空就显示和打印
- if(tx.value.trim() !== ''){
- // console.log(11)
- item.style.display = 'block'
- // console.log(tx.value) // 用户输入的内容
- text.innerHTML = tx.value
- }
- // 等我们按下回车,结束,清空文本域
- tx.value = ''
- // 按下回车之后,就要把 字符统计 复原
- total.innerHTML = '0/200字'
- }
- })
-
-