如何使用requestAnimationFrame创建动画

requestAnimationFrame是什么?

在浏览器动画程序中,我们通常使用一个定时器来循环每隔几毫秒移动目标物体一次,来让它动起来。如今有一个好消息,浏览器开发商们提供了这个requestAnimationFrame()针对动画效果的API函数,你可以把它用在DOM上的风格变化或画布动画好或WebGL中。
例子

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width,user-scalable=no, initial-scale=1, maximum-scale=1, user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<title>如何使用requestAnimationFrame创建动画</title>
</head>
<body>
<div id="test" style="width:1px;height:17px;background:#0f0;">0%</div>
<script>

// http://paulirish.com/2011/requestanimationframe-for-smart-animating
// http://www.webhek.com/requestanimationframe/
// http://www.cnblogs.com/Wayou/p/requestAnimationFrame.html
// shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
  return  window.requestAnimationFrame       ||
          window.webkitRequestAnimationFrame ||
          window.mozRequestAnimationFrame    ||
          window.oRequestAnimationFrame      ||
          window.msRequestAnimationFrame     ||
          function( callback ){
            window.setTimeout(callback, 1000 / 60);
          };
})();


var feng={
    progress:0,
    ele:null,
    test:function(){

        feng.progress++;
        feng.ele=document.getElementById("test");
        feng.ele.style.width = feng.progress + "%";
        feng.ele.innerHTML=feng.progress + "%";
       
        if(feng.progress<100){
            requestAnimFrame(feng.test);
        }
    },
    init:function(){
        feng.test();
    }
}

window.addEventListener('load', feng.init, false);

</script>
 
</body>
</html>

ueditor关闭右键菜单功能的方法

ueditor.config.js配置文件中enableContextMenu选项设置成false就关闭了鼠标右键菜单功能

//打开右键菜单功能
,enableContextMenu: false
//右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准
/*
    ,contextMenu:[
    {
    label:'',       //显示的名称
    cmdName:'selectall',//执行的command命令,当点击这个右键菜单时
    //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName
    exec:function () {
        //this是当前编辑器的实例
        //this.ui._dialogs['inserttableDialog'].open();
    }
    }
]*/

js获取php设置的cookie中文乱码解决办法

php两个函数 urlencode  urldecode
 
js两个函数 decodeURI  encodeURI  5.5以前的版本是已经废弃的 escape   unescape  
 
简单示例如下:
 
1、php 设置cookie ,js读取cookie
 
<?php
setcookie ("username", urlencode("中文测试"));
?>
 
<script type="text/javascript">
    alert(decodeURI(getCookie("username")))
    function getCookie(sName) {
    var aCookie = document.cookie.split('; ');
    for (var i=0; i < aCookie.length; i++) {
    var aCrumb = aCookie[i].split('=');
    if (sName == aCrumb[0])
    return decodeURI(aCrumb[1]);
 }
 return '';
}
 
</script>
 
2、js设置cookie php读取cookie
 
<script type="text/javascript">
function setCookie(name, value, time){
    var nameString = name + '=' + encodeURI(value);
    var expiryString = "";
    if(time !== 0) {
        var expdate = new Date();
        if(time == null || isNaN(time)) time = 60*60*1000;
        expdate.setTime(expdate.getTime() +  time);
     expiryString = ' ;expires = '+ expdate.toGMTString();
 }
 var path = " ;path =/";
 document.cookie = nameString + expiryString + path;
}
setCookie("username", "我是中国人", 0)  
</script>
 
<?php
echo urldecode($_COOKIE["username"]);
 
?>
 
 
 
3 js设置js读取 php设置php读取方法类似
 
总结:cookie解决中文乱码问题实质上是就url编码函数之间的转换