7.23JS深入(续)

6 篇文章 0 订阅
4 篇文章 0 订阅

学习内容:

一、navigator对象

          navigator 对象包含有关浏览器的信息,它有很多属性,我们最常用的是 userAgent,

if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|
Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS
|Symbian|Windows Phone)/i))) {
 window.location.href = ""; //手机
} else {
 window.location.href = ""; //电脑
}


二、history 对象

history对象方法作用
back()可以后退功能
forward()前进功能
go(参数)前进后退功能 参数如果是1前进一个页面 如果是-1 后退一个页面

三、PC端网页特效

1、元素偏移量 offset 系列

(1)相关属性可以动态的得到该元素的位置(偏移)、大小等。

(2) 获得元素距离带有定位父元素的位置 。

(3)获得元素自身的大小(宽度高度)。

(4)注意: 返回的数值都不带单位。

offset系列属性作用
element.offsetParent返回作为该元素带有定位的父级元素 如果妒忌都没有定位则返回body
element.offsetTop返回元素相对带有定位父元素上方的偏移
element.offsetLeft返回元素相对带有定位父元素左边框的偏移
element.offsetWidth返回自身包括padding、边框、内容区的宽度,返回值不带单位。
element.offsetHeight返回自身包括padding、边框、内容区的高度,返回值不带单位。

offset 与 style 区别

(1)offset 可以得到任意样式表中的样式值 ,style 只能得到行内样式表中的样式值 。

(2)offset 系列获得的数值是没有单位的,style.width 获得的是带有单位的字符串 。

(3)offsetWidth 包含padding+border+width, style.width 获得不包含padding和border 的值。

(4)offsetWidth 等属性是只读属性,只能获取不能赋值 。所以,我们想要获取元素大小位置,用offset更合适

(5)style.width 是可读写属性,可以获取也可以赋值 。所以,我们想要给元素更改值,则需要用style改变

2、元素可视区 client 系列

client 翻译就是客户端,通过 client 系列 的相关属性可以动态的得到该元素的边框大小、元素大小等

client系列属性作用
element.clientTop返回元素上边框的大小
element.clientLeft返回元素左边框的大小
element.clientWidth返回自身包括padding 、内容区的宽度,不含边框,返回数值不带单位。
element.clientHeight返回自身包括padding 、内容区的高度,不含边框,返回数值不带单位。

3、元素滚动 scroll 系列

scroll 翻译过来就是滚动的,我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等。

scroll系列属性作用
element.scrollTop返回被卷上去的上侧距离,返回数值不带单位。
element.scrollLeft返回被卷上去的左侧距离,返回数值不带单位。
element.scrollWidth返回自身实际的宽度,不含边框,返回数值不带单位。
element.scrollHeight返回自身实际的高度,不含边框,返回数值不带单位。

4、以上三个系列的对比

三大系列大小对比作用常用于
element.offsetWidth返回自身包括padding、边框、内容区的宽度,返回值不带单位。获取元素位置
element.clientWidth返回自身包括padding 、内容区的宽度,不含边框,返回数值不带单位。获取元素大小
element.scrollWidth返回自身实际的宽度,不含边框,返回数值不带单位。获取滚动距离

5、mouseenter 和mouseover的区别

(1)当鼠标移动到元素上时就会触发 mouseenter 事件。

(2) mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发。

(3)mouseenter 只会经过自身盒子触发 。

(4)之所以这样,就是因为mouseenter不会冒泡。

(5) 跟mouseenter搭配,鼠标离开 mouseleave 同样不会冒泡。

6、动画实现原理

    核心原理:通过定时器 setInterval() 不断移动盒子位置。

    实现步骤:

         (1) 获得盒子当前位置

         (2) 让盒子在当前位置加上1个移动距离

         (3)利用定时器不断重复这个操作

         (4)加一个结束定时器的条件

         (5)注意此元素需要添加定位,才能使用element.style.left

四、移动端网页特效

1、触屏事件

     常见触屏事件如下

(1)touchstart 手指触摸到一个DOM元素时触发

(2)touchmove手指在一个DOM元素上滑动时触发

(3)touchend手指从一个DOM元素上移开时触发

2、触摸事件对象 以上三种触摸事件又会有各自的事件对象。

(1)touches 正在触摸屏幕的所有手指的一个列表

(2)targetTouches 正在触摸当前DOM元素上的手指的一个列表

(3)changedTouches 手指状态发生了改变的列表,从无到有,从有到无变化。

3、移动端拖动元素三部曲

(1) 触摸元素 touchstart: 获取手指初始坐标,同时获得盒子原来的位置

(2) 移动手指 touchmove: 计算手指的滑动距离,并且移动盒子

(3) 离开手指 touchend

五、移动端常用开发插件

1、JS 插件的使用   GitHub官网地址: https://github.com/ftlabs/fastclick

2、Swiper 插件的使用   中文官网地址: https://www.swipe

3、其他移动端常见插件

                                  superslide: http://www.superslide2.com/ 

                                  iscroll: https://github.com/cubiq/iscroll

六、移动端常用开发框架

1、 前端常用的框架有 Bootstrap、Vue、Angular、React 等。既能开发PC端,也能开发移动端

2、前端常用的移动端插件有 swiper、superslide、iscroll等

3、框架: 大而全,一整套解决方案

4、插件: 小而专一,某个功能的解决方

5、常见的Bootstrap 前端开发框架

       Bootstrap JS插件使用步骤:

       (1)引入相关js 文件 

       (2)复制HTML 结构

      (3) 修改对应样式

      (4) 修改相应JS 参数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值