一.软键盘拖拽

效果图:

![img](file:////Users/sairitsutakara/Library/Group%20Containers/UBF8T346G9.Office/TemporaryItems/msohtmlclip/clip_image276.jpg)

功能思路分析:

1. 面向对象框架

\1. 构造函数中: 获取案例上需要用到的元素及数据相关信息

\2. 原型对象中:写好结婚证,初始化方法,事件监听方法

3. 实例对象中: 以对象的形式传参,如数据,选择器名等

2. 键盘显示隐藏

\1. 给两个文本框绑定点击事件,点击文本框显示键盘

\2. 给页面document绑定点击事件,点击页面空白区域隐藏键盘

\3. 给文本框的点击事件阻止冒泡(e.stopPropagation()),以免点击文本框触发document的点击事件

3. 键盘拖拽

\1. 鼠标按下: 为了避免跟键盘按下时的冲突,只给键盘上方空白区域做拖拽,获取鼠标到元素的位置,开启开关

\2. 鼠标移动: 判断开关是否为真, 键盘位置 = 鼠标到页面距离 - 鼠标到键盘距离

\3. 鼠标抬起: 关闭开关

4. 输入内容

\1. 给键盘绑定点击事件

\2. 阻止冒泡(e.stopPropagation()),避免与document的点击事件冲突

\3. 利用事件委托判断每一个按键,将按钮的内容innerHTML,拼接给文本框的value

\4. 特殊功能按键,额外判断: 拼接空格 += ‘ ’ > 清空value > 大小写转换( toUpperCase() toLowerCase() )

#二.今日小结

1. 面向对象三部曲: 构造函数 原型对象 实例化

prototype => 构造 找 原型

constructor => 原型 找 构造

proto => 实例找原型

\2. 隔了函数this指向会发生改变,需要在函数外保留this指向

\3. 实例化时以对象的形式传参

#三.作业 -- 数据筛选

效果图:

功能思路分析:

1. 默认渲染所有数据

封装一个渲染方法,根据传递过来的参数进行渲染,默认渲染所有的数据

2. 选中下拉列表筛选数据

给下拉列表绑定change事件,拿到下拉列表的value值,根据value值筛选不同的数据,使用数组的filter()方法筛选。

3. 文本框搜索数据

根据文本框输入的内容筛选数据,使用indexOf()做筛选条件

js下 Day14、面向对象案例的更多相关文章

  1. js下的面向对象

    本文记录了一种Javascript的面向对象方法及原理理解,示例代码如下: //构造函数 var MClass = function(value1, value2) { this.member = & ...

  2. JS 下拉菜单案例

    css代码 .nav { width: 300px; height: 400px; list-style: none; padding:; margin: 0 auto; } .nav>li { ...

  3. js下 Day12、案例

    一.垃圾分类 效果图: 功能思路分析: 1. 鼠标按下 (1) 获取鼠标到元素的距离(e.offsetX) (2) 开启开关变量 (3) 获取事件源 (4) 记录垃圾初始位置 ​  2. 鼠标移动 ( ...

  4. js下 Day11、案例

    一.成绩分类 效果图: 功能思路分析: 1. 渲染数据 2. 鼠标按下开启拖拽 \1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽 \2. 开启控制拖拽的变量 \3. ...

  5. python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...

  6. 前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息

    小例子: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉,就可以 ...

  7. Day046--JavaScript-- DOM操作, js中的面向对象, 定时

    一. DOM的操作(创建,追加,删除) parentNode 获取父级标签 nextElementSibling 获取下一个兄弟节点 children 获取所有的子标签 <!DOCTYPEhtm ...

  8. z-tree官方提供的下拉菜单案例

    1.z-tree官方提供的下拉菜单案例 <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - selec ...

  9. 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__

    这篇文章主要讲一下JS中面向对象以及 __proto__,ptototype和construcator,这几个概念都是相关的,所以一起讲了. 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道, ...

随机推荐

  1. 应聘阿里,字节跳动,美团必须掌握的Spring IOC与工厂模式

    Spring IOC与工厂模式 PS:本文内容较为硬核,需要对java的面向对象.反射.类加载器.泛型.properties.XML等基础知识有较深理解. (一)简单介绍 在讲Spring IOC之前 ...

  2. 使用pdfFactory为PDF文件设定查看选项

    一般情况下,大部分PDF文件都会按照默认的查看设置,以100%的尺寸显示第一页的内容.但在一些特殊情况下,PDF文件的创建者会设定其他的文件查看尺寸,或设定打开页为第N页,来达到引起阅读者关注的目的. ...

  3. css3系列之属性选择器

    Attribute Selectors(属性选择器) E[attr ~="val"] E[attr |="val"] E[attr ^="val&qu ...

  4. 关于CopyOnWriterArrayList的一些理解

    学了cowarraylist之后,有些不明白的地方, 1.我们为什么要用写时复制的策略呢?,这样每次不是都要复制吗,性能不是很低吗?直接在元素组上扩容不好吗?而且读的时候数据一致性也保证不了,如果只是 ...

  5. 【mq学习整理】mq速览

  6. FDR校正

    一.假设检验 假设检验的基本思路是: 设立零假设(null hypothesis)H0,以及与零假设H0相对应的非零假设(alternative hypothesis)H1,在假设H0成立的前提下,计 ...

  7. 跟我一起学Redis之Redis持久化必知必会

    前言 Redis是出了名的速度快,那是因为在内存中进行数据存储和操作:如果仅仅是在内存中进行数据存储,那就会导致以下问题: 数据随进程退出而消失:当服务器断电或Redis Server进程退出时,内存 ...

  8. vue上传视屏或者图片到七牛云

    首先下载七牛云的JavaScript-SDK npm install qiniu-js 下载完成JavaScript-SDK以后就可以上传图片信息了 <template> <div& ...

  9. moviepy音视频开发:音频剪辑基类AudioClip

    ☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...

  10. moviepy音视频剪辑:与大小相关的视频变换函数详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...