JavaScript 基础学习-拖拽实现 & 正则

356 阅读3分钟

这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战

☆☆☆ 今天的内容( 拖拽的实现正则相关) 重点!! ☆☆☆

可作为初学者的学习路线, 可参考一下, 学习进度也不是特别赶! 持续更新中

结合自己的理解, 用白话文简单又全面概括 JavaScript 学习过程中的基础知识点, 方便加深理解!

开始今天的学习吧! '打牢地基才能筑高楼'! 加油! 认真对待!!

1、梳理复习昨天知识点

  • 事件委托 :target || srcElement

  • 事件委托(事件代理) :

  • json 对象 : {  }

  • 读取操作   json = { "src":["1.jpg","2.jpg"] }   json.src   json["src"]

  • 拖拽 :   实现    onmousedown  onmousemove  onmouseup

  • 滚动条操作

如何获取页面滚走的距离  :  document.documentElement.scrollTop || document.body.scrollTop

2、取消拖拽时的文字选中状态

window.getSelection?

window.getSelection().removeAllRanges():document.selection.empty();

3、offset 家族属性

offsetWidth / clientWidth / style.width 三者区别:

  • offsetWidth / clientWidth   都可以获取非行内元素的样式值

  • offsetWidth 值 = 内容宽度 + padding + border

  • clientWidth 值 = 内容宽度 + padding

    • 得到的值 是数值类型
    • 只读属性     不能这样做:obj.offsetWidth = 400
  • style.width 不可以获取非行内元素的样式值       行内样式值 = 内容的宽度

    • 得到的值 是字符串     带有 px
    • 可读可写
  • offsetLeft :获取离该元素最近的具有定位的元素的左偏移     如果该元素的父级元素都没有定位的设置,相对应 body 的左偏移

  • offsetTop :同上

4、放大镜实现思路

  • 需要的事件:
    • 鼠标移入 和 移出   移动  onmouseover  onmouseout  onmousemove
    • 鼠标移入 : 显示遮罩层 mask 和大图显示区
    • 鼠标移出 : 隐藏遮罩层 mask 和大图显示区
    • 鼠标移动 :
      • 1、操作 mask 的 left 和 top   让 mask 动起来
      • 2、操作 bigImg 的 left 和 top   让大图动起来
      • 3、mask 移动方向和 bigImg

5、正则 --- 正确的规则

限制用户输入数据的合法性

好处 : 提高工作效率

6、正则表达式组成

由 普通字符 和   特殊字符   组成的  , 具有特定含义

7、正则定义  

var reg = /普通字符或特殊字符/修饰符;        new RegExp

修饰符 :  i   不区分大小写          g   全局查找

8、正则中的特殊字符

8.1 单字符 : 

  • ^ : 开始
  • $ : 结束
  • |         表示   或者     一般与 (     )   连用
  • * :   等价于 {0,}   表示 其前面紧挨着的字符 至少出现 0 次
  • + :   等价于 {1,}
  • ? :    等价于 {0,1}
  • . :   表示任意一个字符
  • \ :   转义字符   如果一些特殊字符 在正则中表示原意   必须要转义   . ---- 原意 .

8.2 组合字符:

  • \d : 表示 0--9 之间的任意一个数字
  • \D : 表示 非 数字 (任意一个字符)
  • \w : 表示 任意一个 单词字符   (字母或数字或下划线)
  • \W : 表示非 单词字符
  • \s : 表示任意一个空白字符
  • \S : 表示非空白字符

8.3 括号 :

  • {m,n}  m < n  m ,n 都是正整数   表示{}前面紧挨着的字符至少出现 m 次   至多出现 n 次
  • {m}   m 是正整数    表示{}前面紧挨着的字符只能出现 m 次
  • {m,}   m 是正整数    表示{}前面紧挨着的字符至少出现 m 次
  • [ ]   表示括号内的任意一个字符      [12as]         [0-9] 等价 \d        [a-z]
  • [^ ]   表示 非括号内的任意一个字符        [^a-z]表示非小写字母
  • 表示任意一个中文 :  [\u4e00-\u9fa5]

预告: 加油, 追梦人

【预告】: 接下来学习 正则 以及开始接触 实际工作中部分需求的实现

学习就是一个不断进行的过程, 坚持下去, 定有收获!

日积月累, 巩固基础, 早进大厂!

坚持很不容易, 坚持下来更不容易, 你真棒!

Calm Down & Carry On!


更多阅读:

前文更新回顾

【重学 JS】每天学习巩固基础:

【day1】js 初始

【day2】各种运算符

【day3】数据类型

【day4】循环结构 & 条件语句

【day5】函数(重点)

【day6】作用域 & 事件

【day7】对象 & 数组方法总结

【day8】字符串方法 & 部分排序

【day9】Math 对象 & 封装函数

【day10】BOM-浏览器对象模型

【day11】DOM-文档对象模型

【day12】Event 事件对象初识(一)

【day13】Event 事件对象初识(二)

【day14】事件委托 & 拖拽原理

更多期待在路上...任重而道远==-..-==