无线开发笔记
-
box-shadow: h-shadow v-shadow blur spread color inset
-
rgba
形式的颜色写法,在color
、background
、gradient
等地方都能用到 -
text-shadow: h-shadow v-shadow blur color;
-
transition: property duration timing-function delay;
-
默认:
all 0 ease 0
-
非整数的时间可以写成:
.2s
-
监听属性变化,对
<style>
和js
设置的css
同时适用 -
可以用逗号隔开,监听多个属性的变化,如:
transition:1s width ease,10s height ease
-
六种值
linear
:匀速ease
:慢速-快速-慢速ease-in
:慢速-快速ease-out
:快速-慢速ease-in-out
:慢速-快速-慢速cubic-bezier(n,n,n,n)
-
如果元素变为
display:none
,失效 -
对
fontSize
有效:demo -
JS
事件transitionend
不能这样加事件:
oDiv.ontranstionend=function(){ alert(1); }
要这样写:
oDiv.addEventListener('transitionend', function(){ oDiv.style.height = '300px'; }, false);
-
-
运动
-
定义
@-webkit-keyframes test{ from{ 300px; color:#000; background:#ccc;} to{ 500px; color:#fff; background:red;} }
-
属性
-
-webkit-animation-name
——WebkitAnimationName
执行运动
-
-webkit-animation-duration
——WebkitAnimationDuration
-
-webkit-animation-timing-function
——WebkitAnimationTimingFunction
-
-webkit-animation-delay
——WebkitAnimationDelay
-
-webkit-animation-fill-mode
——WebkitAnimationFillMode
-
-webkit-animation-iteration-count:infinite;
infinite
:运动次数是无限,运动到终点后,直接跳回起点重新运动,好像没有包含动画外的动作 -
-webkit-animation-direction
alternate
:轮流反向播放 -
-webkit-animation-play-state:paused;
运动暂停
-
-
完整的运动过程
起点 —— 终点(`100%`的点 / 原点)+ 动画时间外的状态(根据终点判定) { 动画时间 } { 动画时间外 } ```
-
颜色也可以渐变,比如从
red
变为blue
-
有两种运动的形式
-
transition: 1s all ease
监听属性变化,属性变化时触发运动
-
animation
-
@-webkit-keyframes test {}
定义属性的变化
-
-webkit-animation-name
等执行运动
-
-
-
-
transform
-
js
设置dom.style.WebkitTransform; dom.style.MozTransform; dom.style.MsTransform; dom.style.OTransform; dom.style.transform;
-
倾斜:
skew
-
位移:
translate
dom.offsetLeft
是不变的 -
缩放:
scale
dom.offsetWidth
是不变的 -
旋转:
rotate
rotate(45deg)
的效果和rotateZ(45deg)
效果一直是
x/y/z
轴自身旋转 -
原点:
transform-origin
默认是中心点
关注
center bottom
的放大效果
-
-
渐变:
gradient
- 写法:
background:-webkit-linear-gradient(red,blue,yellow,green);
- 颜色写法
rgb
green...
#ccc...
- 更新起点
- 支持
right bottom
式:background:-webkit-linear-gradient(right bottom,red,blue);
- 支持
deg
式:background:-webkit-linear-gradient(-45deg,red,blue);
- 支持
- 写法:
-
时间处理:
(new Date()).toGMTString()
-
localstorage
-
选择器:
querySelector
-
自定义属性
dom.getAttribute('data-index')
同dom.dataset.index
dataset
可以获取setAttribute
的属性- 性能上
getAttribute
更好,但差别并不大
-
表单
type
有email
、url
、month
、week
、submit
等属性有
required
等示例代码
<form action="http://www.baidu.com"> email:<input type="email" name="email" required><br> url:<input type="url" name="url" required><br> date:<input type="month"><br> week:<input type="week"><br> <input type="submit"> </form>
<form action="http://www.baidu.com"> number:<input type="number"><br> range:<input type="range"><br> date:<input type="date"><br> time:<input type="time"><br> email:<input type="email"><br> url:<input type="url"><br> <input type="submit"> </form>
-
audio
示例代码
<audio src="http://yinyueshiting.baidu.com/data2/music/123651506/536010151200128.mp3?xcode=2ae33064a9e679aac9d26d3be69ae122dbbfc4acb439db37" controls></audio>
<audio controls autoplay> <source src="xxx"> </audio>
<audio controls autoplay loop> <source src="xxx"> </audio>
-
vedio
示例代码
<video controls width="500"> <source src="bbb.mp4"> <source src="bbb.ogg"> </video>
video
的dom
对象,有以下方法:dom.pause()、dom.play()
有以下属性:
dom.paused、dom.width
-
border-radius
发现一个特点,其值在
50%+
时,一个宽高相等的div
,均呈现为圆形。 -
canvas
- 获取
canvas
的dom
元素dom
- 获取对象:
gd = dom.getContext('2d')
- 划线:
gd.lineTo(x, y) n次
- 设置线的颜色:
gd.strokeStyle = 'blue'
- 设置线的宽度:
gd.lineWidth = 10
- 设置填充颜色:
gd.fillStyle = 'red'
,且必须和gd.fill()
搭配才能填充颜色 - 合并划线:
gd.stroke()
可以实现如下效果:
- 获取
-
-webkit-box-reflect
- 写法:
-webkit-box-reflect: below 5px -webkit-linear-gradient(rgba(0,0,0,0) 50%,rgba(0,0,0,1));
- 写法:
-
定位
-
HTML5 Geolocation API是新增的地理位置应用程序接口。如果浏览器支持,且设备具有定位功能,就能够直接使用这个API来获取当前位置信息。
-
检测浏览器是否支持
function supportGeolocation() { return 'geolocation' in navigator; }
-
window.navigator.geolocation对象存在3个方法
-
getCurrentPosition 获取当前地理位置
getCurrentPosition(successCallback, onError, options)
第1个参数为获取当前地理位置信息成功时所执行的回调函数,第2个参数为获取当前地理位置信息失败时所执行的回调函数,第3个参数为一些可选属性的列表。其中,第2、3个参数为可选参数。
navigator.geolocation.getCurrentPosition(function(position) { //TODO 获取成功时的处理 var timestamp = position.timestamp; var coords = position.coords; console.log(timestamp); console.log(coords); }, function(error) { //TODO 获取失败时的处理 console.log(error); }, { maximumAge: 0 });
第1个参数,在获取地理位置信息成功时执行的回调函数中,带有一个position参数,它是一个Geoposition对象。该对象有以下两个属性:
timestamp属性,时间戳。
coords属性,coords属性是一个Coordinates类型对象,包含下面这些属性:
1. accuracy 获取到的经度或纬度的精度(以米为单位)。 2. altitude 当前地理位置的海拔高度(不能获取时为null)。 3. altitudeAccuracy 获取到的海拔高度的精度(以米为单位)。 4. heading 设备的前进方向。用面朝正北方向的顺时针旋转角度来表示(不能获取时为null)。 5. latitude 当前地理位置的经度。 6. longitude 当前地理位置的纬度 7. speed 当前的前进速度(以米/秒为单位,不能获取时为null)。
第2个参数,在获取地理位置信息失败时执行的回调函数中,带有一个error参数,它是一个PositionError对象。该对象有以下两个属性:
code属性,可能值: 1. 当属性值为1时,表示用户拒绝了位置服务,"User denied Geolocation"。 2. 当属性值为2时,表示获取不到位置信息,"Timeout expired"。 3. 当属性值为3时,表示获取信息超时错误。 message属性 message属性值为一个字符串,包含了错误信息,这个错误信息在我们开发和调试时非常有用。
第3个参数是一个可选属性的列表,说明如下:
enableHighAccuracy属性,是否要求高精度的地理位置信息。 timeout属性,超时限制(单位为毫秒)。如果在该时间内未获取到地理位置信息,则返回错误。 maximumAge属性,对地理位置信息进行缓存的有效时间(单位为毫秒)。如果该值设为0,则每次都去重新获取地理位置信息。
-
watchPosition 监视位置信息
使用watchPosition(successCallback, errorCallback, options)方法可以定期地获取用户地理位置信息。该方法使用方式与getCurrentPosition方法类似,这里就不再详细解释了。调用该方法会返回一个数字,这个数字与setInterval方法的返回值用法类似,可以被clearWatch方法使用,以停止对当前地理位置信息的监视.
-
clearWatch 停止获取位置信息
使用clearWatch方法可以停止对当前用户地理位置信息的监视。用法如下:
navigator.geolocation.clearWatch(watchId);
参数watchId为调用watchPosition方法时的返回值。
-
-