js事件+动画+课设+day02

day02

js浏览器脚本

  • 可以动态操作标签的内容
  • 通过用户行为,触发HTML和css 的改变。

js代码写那;

  • script标签内
  • script标签写在head或者 body 下都行
  • 习惯写在body, 外部加载的 js 文件, 写在 head;
  • js 是弱类型语言: 定义变量是,不必先定义出 数据类型;

定义变量

  • let 定义临时变量

  • const 定义常量

  • var 已经抛弃(不要在用了)

  • js 代码,每一句的 结尾, 根据最新规则, 不必加分号,如果两句代码写在同一行,还是要加上分号;

let a = 10


var array = []
for( var i = 1; i<= 10; i++)
{
    var fun = functio(){
        alert(i)
    }
    array.push(fun);
}
array[1]()

  • var 是全局变量,所以最好不要用;
  • typeof a ; 看类型

数据类型

  • number 数字类型

  • 最新规范 是’’; 字符串 ,但是都行

  • string

  • boolean

  • object

  • undefined 未定义

  • function(){}

  • json 类似 py字典,java的map;(重要)

  • const a = {key: value, key:value, key: value}

  • json中的key 只能是 字符串,不能是别的,v可以是任意的

  • 静态的 key,用电, 否则用【】

知识点

  • 加括号 是调用函数 返回结果,不加括号表示的 是函数本身;

运算符

  • < =, +,-,& ! |

let a=1
let b=10
console.log(a===b)

//  等于是三个等号 
//  不等于是 !==  
// 两个等号 值判断 数值, 三个 等号判断 类型和数值


js 中允许 吧函数作为 参数传递

  • () => {} js中的lambda 表达式

增强For, 寻欢 的是下标;

  • for(i in array)
    {
    console.log(array[i])
    }

dom 对象

  • document object model 页面 对象模型

  • 页面中 每一个 标签 在 js 中 对应一个对象

  • HTML中的 标签 拿到 js 中

  • document 中 的根节点 是 dom最大 的对象, 获取任何 一个 dom 都要通过 document对 象

  • documnet.getElementById 弃用

  • 现在用 document.querySelector(传选择器) 获取第一个

  • document.querySelectorAll(传选择器) 获取全部

事件

  • 通过用户行为来触发函数 的一种机制
  • 设置 在dom 对象 上, 事件 对应 着 一个 函数
  • onclick 点击 事件
  • 取消 事件 ab.οnclick= null

鼠标事件

  • onmousedown 鼠标按下

  • 点击事件 是按下并取消, 按下就是 按下

  • onmouseup 鼠标抬起触发

  • 任何 按键抬起 都会触发 ,无论 鼠标在哪按下, 只要在界面上 抬起 就可以了

  • 点击事件 只有左键按下 并 抬起时候 触发,并且必须在 该元素上 按下抬起 才会触发

  • onmousemove 鼠标移动 事件

    1. 对应下
  • onmouseleave 鼠标离开事件 离开块就触发一次 如果移动到子元素上,不算离开。

  • onmouseenter 鼠标移入事件 从子元素上过来不算移入,从子元素移入进来 就不算 移入

    1. 对应上
  • onmouseout 鼠标离开事件 移动到子元素 上, 也算离开;

  • onmouseover 鼠标移入事件 如果从子元素 上移入,也算移入

所有鼠标事件 都有一个 内置参数, 我们叫做句柄
  • which:1 左键 2 滚轮 3 右键
  • target: 获取到你点击的元素
  • screenx: 相对于屏幕的 左边
  • clienty : 相对于浏览器下边缘;导航栏下面的顶点

键盘事件

  • onkeydown 表示的是键盘按下

  • onkeyup 表示 的是键盘 抬起

  • onkeypress 键盘按下

  • 区别

  • keydown 是 按下任何按键都 触发(能不能产生字符)

  • keypress 不能 ctrl,shift不能触发,并且必须有字母菜 触发

  • onblur 失去焦点

  • onchange 失去焦点的同时 并且发生改变

  • onfocus 获取焦点

也有内置参数

  • 类似鼠标事件

jQuery

  • jQuery 是 js 的一个 框架
  • 作用; 更方便快捷 操作 dom 元素
  • 如果使用: 第一步,先引入jquery;
<script> src =""; </scritp>
  • 第二步: 在js中 先测试入口 函数;

  • jquery 中 有一个 万能函数, $();

  • $(function) 入口函数

  • 类似 javase 中的 main 方法

  • 入口函数作用:等待所有的 标签 加载 完成 后 执行

  • $(选择器) {获取 jQuery dom 注意; jQuery和 js 的 dom 是不一样 的}

  • jquery 的方法 只能 支持 jquery dom

  • jquery dom => js dom dquerydom[0]

  • js dom=> jquery dom $(js dom)

s设置事件

  • jquery dom. 事件名(function(){});

  • 注意和 js dom 的区别

  • js 事件吧 On 去掉 = jquery 事件

  • event.pageX || event.clientX;

  • 没有pageX 的话 去取 clientX

jquery 方法

  • offset() 获取边距
  • $(’#a’).offset().left; offset().top
  • $(’#a’).css(json{
    k:v,
    k: v…
    })

day02下

轮播

  • 淡入和 淡出

  • 淡入: 慢慢显示出来

  • 有图: 图要一样大;

  • 加载背景图:url();

  • 如果标签过小,那么会显示不全

  • 标签过大: 那么会平铺

  • repeat-x, repeat-y; background-style:no-repeat;

  • bgckground-size: 设置背景图大小

  • 该属性必须先加载背静图,在对背景图进行大小设置;顺序很重要;

  • 图片标签: img

  • alt;如果图片不能正常加载,那么显示改文字, src; 图片的路径;

  • 如果不设置宽度和高度,那么加载的图片默认 和原来的 一样;

  • 如果设置 了高度和宽度,那么图片 的 不能显示完全,会等比例的 缩放 进行完全 显示;

  • background-size: 120px 120px; 全部显示

  • 2:00- 2:10; 睡着

  • 创建虚拟 dom, 并不在 HTML标签中

  • $(标签) ;ex: const div = $(

    )

  • 只要把虚拟dom 加载进入实体,就可以存在 ex: $(’#wrap’).append(div)

透明度;

  • 0到1 之间的数值; 0表示 的是全 透,1 表示的是不透
  • border-radius: 圆角,数值 是 圆角半径
  • 半径 是 边长 的1/2;

伪类hover

  • 表示 鼠标 移上 之后 的样式

  • this 表示你点 的那个li ,就是 那个dom 对象

  • jQuery的当前的 dom 对象 $(this).index();//表示获取当前 对象 ,在同级元素中排在 第几个;(0)开始

  • const index = $(this).index()

  • 点击的是第几个 li,那么就显示第几个 div 背景

  • $(‘wrap>div’).eq(index).fadeIn(2000).siblings(‘div’).fadeOunt(2000);

旋转

  • 2d 旋转

  • transform: 转换

  • transform: rotate(角度: deg)

  • transform: rotate(2deg);

  • 缩放:

  • transform: scale(0-1);

  • 阴影:

  • box-shadow: 右阴影 下阴影 锐化 阴影色

setTimeOut(函数,延迟时间)

day03

实现 3d 样式的 两个条件

  • 在实现3d效果的 标签上架 transform-style: preserve-3d;

  • 在实现 3d 效果的 标签 的父元素 上 架一个 镜头 的距离, perspective: 800-1200

  • transform: rotateX

  • translateX, translateXZ…平移 ,他不能超过 镜头距离perspective 的数值

  • 了解 旋转后 坐标轴 跟着 旋转了, 就是注意 ratateX 和left 的区别,就是坐标系不一样了

  • transform-origin: 0px 0px 0px ; 确定旋转点

  • 线性渐变: background: linear-gradient(0deg , pink , yellow); 颜色以 pink色开始,以黄色结束, 从下往上,其中颜色可以写多个;linear-gradient(0deg, yellow,blue,pink)

  • 径向 渐变:确定一个点,逐渐 向外变化,

  • bgc:-webkit-radial-gradient(120px 120px , 100px 100px , red, blue);

  • setTimeOut(function t(){} time);

  • 倒影: -webkit-box-reflect: above; below; // 5px; 倒影和原图之间的距离

  • 托盘: div

  • 半透明:opacity:0.5

day03下午

动画样式

  • 要是实现动画,需要两步:

  • 1 定义动画

  • @keyframes 动画名 {
    0%{样式
    left: 0;
    }
    50%{

    }
    100%{
    left: 0;
    }
    }

  • 动画是css3 的样式,可能 存在 浏览器不兼容 的问题;

  • 所以需要添加内核

  • @-webkit-keyframes donghua{
    0% { }
    100%{ }
    }

  • moz

  • o

    1. 执行动画
  • 在选择器 animation: 动画过度时间 ex: animation: donghua 1s 延迟时间 执行次数

  • 默认情况下动画 执行完 就停止了, 样式回归到原来的 状态

  • 速度曲线: ease 默认(开始慢,逐渐变快,在变慢);

  • ease-in 慢-》快

  • ease-out 快-》慢

  • ease-in-out

  • linear 匀速

  • 延迟时间

  • 一定时间后 在执行 动画

  • 执行次数

  • infinate

  • 偶数次是否反向

  • 默认: normal

  • alternate 反向

  • 停留位置

  • none 默认 动画结束后 停留在无动画状态

  • forwards 动画结束后停留在 最后一帧

螺旋矩阵

  • append 和 appendTo 反过来
  • cursor: poninter;

java日历

  • const d = new Date();

  • d.getYear(); 获取1900到现在的时间差

  • d.getFullYear();

  • d.getMonth(); 0到11 ,不是1到12;

  • d.getDay(); 获取星期数 0-6 周日是0

  • d.getDate();获取当前日期,从1 开始

  • d.getHours()

  • d.getMinutes();

  • d.getDeconds();

  • d.getMillisecods(); 获取毫秒数 0到999

  • 边框合并

  • border-collapse: collapse;

猜你喜欢

转载自blog.csdn.net/weixin_42333573/article/details/107640242