• js 中 操作元素样式

    • 通过js修改元素内联样式(设置和读取的都是内联样式)
    • 获取当前元素显示的样式
      <html>
      <head>
      <meta charset="utf-8">
      <title></title>
      </head>
      <style type="text/css">
      #box1 {
      width: 200px;
      height: 200px;
      background-color: aquamarine;
      }
      </style>
      <body>
      <button type="button" id="btn1">点我下1</button>
      <button type="button" id="btn2">点我下2</button>
      <button type="button" id="btn3">点我下3</button>
      <br><br>
      <div id="box1"> </div>
      </body>
      <script type="text/javascript">
      window.onload = function() {
      var btn01 = document.getElementById("btn1");
      var box01 = document.getElementById("box1");
      btn01.onclick = function() {
      /*
      通过js修改元素内联样式:
      语法: 元素对象.style.样式名 = 样式值
      样式名: background-color 是不符合的, 需要改为驼峰命名: backgroundColor
      注意: 这种方法设置和读取的都是内联样式
      */
      box01.style.width = "400px";
      box01.style.height = "400px";
      box01.style.backgroundColor = "red";
      }
      /*
      获取当前元素显示的样式:
      语法: 元素对象.currentStyle.样式名 。 此方法只有IE浏览器支持
      其他浏览器获取样式: getComputedStyle(元素对象,null).样式名 ; */
      var btn2 = document.getElementById("btn2");
      btn2.onclick = function() {
      alert(box01.currentStyle.width);
      } var btn3 = document.getElementById("btn3");
      btn3.onclick = function() {
      var style_obj = getComputedStyle(box1, null);
      alert(style_obj.width);
      }
      }
      </script>
      </html>
  • js 中 事件对象
    • 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数
    • 在这个事件对象中封装了当前事件相关的一切信息(鼠标的坐标、键盘那个键被按下,鼠标滚动的方向等)
    • 注意: 在ie8及以下浏览器中,响应函数触发时,不会传递事件对象。 事件对象是作为window对象的属性来存储的。
    • 以一个鼠标移入某个区域后显示x、y坐标为例子
      <html>
      <head>
      <meta charset="utf-8">
      <title></title>
      </head>
      <style type="text/css">
      #areaDiv {
      width: 200px;
      height: 100px;
      border: black 3px solid;
      margin-bottom: 10px;
      } #showMsg {
      width: 200px;
      height: 30px;
      border: black 3px solid;
      }
      </style>
      <body>
      <div id="areaDiv"></div>
      <div id="showMsg"></div>
      </body>
      <script type="text/javascript">
      var areaDiv = document.getElementById('areaDiv');
      var showMsg = document.getElementById('showMsg'); /*
      onmousemove 事件: 鼠标在元素中移动时触发
      事件对象: 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数
      在这个事件对象中封装了当前事件相关的一切信息(鼠标的坐标、键盘那个键被按下,鼠标滚动的方向等)
      note: 在ie8及以下浏览器中,响应函数触发时,不会传递事件对象。 事件对象是作为window对象的属性来存储的。 */ areaDiv.onmousemove = function(e) {
      // 解决事件对象兼容性问题: 两种写法:
      // if (!e) {
      // e = window.e;
      // }
      e = e || window.e;
      showMsg.innerHTML = 'x坐标:' + e.clientX + ',y坐标:' + e.clientY;
      } areaDiv.onmouseout = function() {
      showMsg.innerHTML = '';
      }
      </script>
      </html>
  • 鼠标移动事件,实现某个div跟随鼠标移动(复制代码运行直接看效果更直观)
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    </head>
    <style type="text/css">
    #box {
    position: absolute;
    width: 50px;
    height: 50px;
    background-color: #7FFFD4;
    }
    </style>
    <body style="height: 1200px;">
    <div id="box"> </div>
    </body>
    <script type="text/javascript">
    /*
    clientX 和 clientY 是获取当前可见页窗口的坐标
    pageX 和 pageY 是获取相对当前页面的坐标 (当页面可以往下滚动时,需要使用这个获取坐标),但是在IE8中不支持
    */
    document.onmousemove = function(e) {
    /*
    获取滚动条高度
    IE和火狐不识别滚动条属于body的, 谷歌、edge可以识别。
    IE和火狐认为滚动条属于html的。documentElement,但是edge识别不了html的滚动条
    */
    var st = document.body.scrollTop || document.documentElement.scrollTop;
    e = e || window.e;
    var box = document.getElementById('box');
    box.style.left = e.clientX + 'px';
    box.style.top = e.clientY + st + 'px';
    }
    </script>
    </html>

JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)的更多相关文章

  1. JavaScript基础回顾知识点记录4-正则表达式篇(介绍基本使用)

    js 中 正则表达式使用 创建正则对象和test方法使用 /* 创建正则表达式的对象 语法: var 变量 = new RegExp("正则表达式","匹配模式" ...

  2. JavaScript基础回顾知识点记录3

    js 中 垃圾回收 //将不在使用的对象设置为null , js就会自动进行垃圾回收机制 var obj = {}; obj = null; js 中 数组基本介绍 数组也是一个对象 与普通对象功能类 ...

  3. JavaScript基础回顾知识点记录2

    js 使用嵌套for循环输出三角形 for(var i=0; i<5; i++){ //正三角 // for(var j=0; j<i+1; j++){ // document.write ...

  4. JavaScript基础回顾知识点记录1

    js执行顺序为从上往下执行 js中有6种数据类型 基本数据类型为: String Number Boolean Null Undefined 引用数据类型为: Object 使用typeof 查看对象 ...

  5. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  6. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  7. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  8. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

  9. javascript基础入门知识点整理

    学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...

随机推荐

  1. 攻防世界pwn题:forgot

    0x00:查看文件信息 该文件是32位的,canary和PIE保护机制没开. 0x01:用IDA进行静态分析 总览: 该函数就是:v5初值为1,对v2输入一串字符.然后执行一个会根据输入的字符串而修改 ...

  2. 深度学习与CV教程(13) | 目标检测 (SSD,YOLO系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  3. 2021.04.24【NOIP提高B组】模拟 总结

    2021.04.24[NOIP提高B组]模拟 总结 T1 题意:有一圈数.两两之间有加法或乘法操作, 问你开始断掉那条边使得剩下的序列经过某种操作后的值最大 看上去是个区间 dp .然后直接断环成列, ...

  4. LoRa模块无线收发通信技术详解

    LoRa是一种LPWAN通信技术,它基于扩频技术而广泛应用于超长距离的无线传输场景中.现在,LoRa主要在全世界433.868.915MHz等自由频带工作.其最大特征是灵敏度高,传输距离长,工作功耗低 ...

  5. call apply bind的作用及区别? 应用场景?

    call.apply.bind方法的作用和区别: 这三个方法的作用都是改变函数的执行上下文,换句话说就是改变函数体内部的this指向,以此来扩充函数依赖的作用域 1.call 作用:用于改变方法内部的 ...

  6. centos 7搭建svn+apache及权限控制

    SVN服务器运行模式: 模式1:svn服务器单独运行 监听: 3690端口 访问: svn://IP 模式2: svn 服务器+ apache : 80 端口 访问: http://IP 1. #安装 ...

  7. React技巧之导入组件

    正文从这开始~ 总览 在React中,从其他文件中导入组件: 从A文件中导出组件.比如说,export function Button() {} . 在B文件中导入组件.比如说,import {But ...

  8. Markdown第一次学习

    # # Markdown学习 一级标题: #空格+标题名称+回车得到一级标题 ## 二级标题 一级标题方法中变成两个##号 ### 三级标题 变成三个###号,以此类推,最多到六级标题 ## 字体 h ...

  9. HiEngine:可媲美本地的云原生内存数据库引擎

    摘要:HiEngine与华为GaussDB (for MySQL)集成,将内存数据库引擎的优势带到云端,并与基于磁盘的引擎共存.HiEngine的性能比传统的以存储为中心的解决方案高出7.5倍. 本文 ...

  10. 一文搞懂 Netty 发送数据全流程 | 你想知道的细节全在这里

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 在<Netty如何高效接收网络数据 ...