当前位置:  编程技术>WEB前端
本页文章导读:
    ▪JS:2.2,循环控制(JavaScript,for,while,do while,break,continue)高级      ylbtech-loop:流程控制(Process control)高级ifwhiledo-whilebreak与continue的区别?breakcontinueJS:2.2.1,if返回顶部<html><body><script type="text/javascript">for (i = 0; i <= 5; i++){document.write("数字是 " + .........
    ▪window.requestAnimationFrame      再看别人实现粒子效果的时候会有以下代码: 1 window.requestAnimationFrame || (window.requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame   || window.oRequestAnimationFrame || window.m.........
    ▪使用E10和CSS Device Adaptation      浏览器在不同的设备上大小布局不同,而且就算在相同设备上用户也会改变浏览器的大小,我们希望布局可以更好的适配用户的浏览器显示区域大小,可以采用CSS Device Adaptation,在IE10上进行.........

[1]JS:2.2,循环控制(JavaScript,for,while,do while,break,continue)高级
    来源:    发布时间: 2013-11-06
ylbtech-loop:流程控制(Process control)高级
  • if
  • while
  • do-while
  • break与continue的区别?
  • break
  • continue
JS:2.2.1,if返回顶部
<html>
<body>

<script type="text/javascript">
for (i = 0; i <= 5; i++)
{
document.write("数字是 " + i)
document.write("<br />")
}
</script>

<h1>解释:</h1>

<p>for 循环的步进值从 i=0 开始。</p>

<p>只要 <b>i</b> 小于等于 5,循环就会继续运行。</p>

<p>循环每循环一次,<b>i</b> 就会累加 1。</p>

</body>
</html>
JS:2.2.2,while返回顶部
<html>
<body>

<script type="text/javascript">
var i = 0
while (i <= 5)
{
document.write("数字是 " + i)
document.write("<br />")
i++
}
</script>

<h1>解释:</h1>

<p><b>i</b> 等于 0。</p>

<p>当 <b>i</b> 小于或等于 5 时,循环将继续运行。</p>

<p>循环每运行一次,<b>i</b> 会累加 1。</p>

</body>
</html>
JS:2.2.3,do-while 返回顶部
<html>
<body>

<script type="text/javascript"
    
[2]window.requestAnimationFrame
    来源:    发布时间: 2013-11-06

再看别人实现粒子效果的时候会有以下代码:

 

1 window.requestAnimationFrame || (window.requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame
  || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
2 function(callback, element) {
3 return window.setTimeout(function() {
4 return callback(+new Date());
5 }, 1000 / 60)
6 });

 这个到底是什么意思,它又是怎么用的呢?

 

 

  window.requestAnimationFrame  告诉浏览器您要执行的动画并且请求浏览器的在下一个动画帧重绘窗口。该方法在浏览器重绘之前作为一个回调函数被调用。

就是告诉浏览器在刷新屏幕的时候,调用这个方法。

/*********************************我是分割线***********************************/

window.requestAnimationFrame的前世今生:
在90年代,那个互联网做广告的年代,window上面各种走马灯,各种状态文字都是用setTimeout来时实现的,如下:

1 (function(){
2 function update(){
3
4 setTimeout(update,1000)
5
6 }
7 setTimeout(update,1000)
8
9 })();
10
11 (function(){
12
13 function update(){
14 //
15
16 }
17 setInterval(update,1000)
18
19 })();

动画的问题最棘手的是延时问题,对于显示器来说,每一秒60帧频,如果我们按照浏览器的刷新速率来控制我们的动画时间的话会有很好的效果,即17ms,

setTimeout(callback,1000/60),但是:

  1.各个浏览器及时精度是不一样的。

  2.对于setTimeout 和setInterval 实现机制并不是我们需要的那样,当经过特定的时间后,浏览器会将那部分代码加入到UI的绘制队列当中,如果这个时候UI线程很忙,有其它的任务阻塞,动画的下一帧就不会按时执行。经过长时间的累计堆加之后,可能我们偏离原来的时间点误差越来越大。

  Mozilla 的 Robert O’Callahan 在思考这个问题,并想出了一个独特的方案。他指出CSS transitions 和 animations的优势在于浏览器知道哪些动画将会发生,所以得到正确的间隔来刷新UI。而javascript动画,浏览器不知道动画正在发生。他的解决方案是创建一个mozRequestAnimationFrame()方法来告诉浏览器哪些javascript代码正在执行,这使得浏览在执行一些代码后得到优化。
  mozRequestAnimationFrame()方法接受一个参数,是一个屏幕重绘前被调用的函数。这个函数用来对生成下合适的dom样式的改变,这些改变用在下一次重绘中。你可以像调用setTimeout()一样的方式链式调用mozRequestAnimationFrame()。

 

这个就是window.requestAnimationFrame的由来。

  在Mozilla官网看到如下

Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

  由于这项技术的规范还没有稳定,正确的前缀使用在各种浏览器的兼容性表。还要注意的是语法和行为的实验技术是如有改变,在未来版本的浏览器的规格变化。

目前在Android系统下是不支持的,动画只能setTimeout咯。

 

本文链接


    
[3]使用E10和CSS Device Adaptation
    来源: 互联网  发布时间: 2013-11-06

浏览器在不同的设备上大小布局不同,而且就算在相同设备上用户也会改变浏览器的大小,我们希望布局可以更好的适配用户的浏览器显示区域大小,可以采用CSS Device Adaptation,在IE10上进行测试。


先最简单的HTML代码


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
        .bigTiles {
            width: 691px;
            height: 336px;
            float:left;
        }

        .smallTiles {
            width: 159px;
            height: 159px;
             float:left;
        }

        .middleTiles {
            width: 336px;
            height: 336px;
             float:left;
        }
    </style>
</head>
<body>
    <div class="bigTiles" style=" background-color:yellow"></div>
    <div class="middleTiles" style=" background-color:blue"></div>
    <div class="smallTiles" style=" background-color: red"></div>
    <div class="smallTiles" style=" background-color:burlywood"></div>
</body>
</html>

在IE10上的运行结果

当屏幕宽1360的时候


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3