• css3动画


    matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
    translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。
    translateX(n) 定义 2D 转换,沿着 X 轴移动元素。
    translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。
    scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。
    scaleX(n) 定义 2D 缩放转换,改变元素的宽度。
    scaleY(n) 定义 2D 缩放转换,改变元素的高度。
    rotate(angle) 定义 2D 旋转,在参数中规定角度。 deg 角度 rad 弧度
    skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。
    skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。
    skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

    **简单demo*******

    transform:translate(10px,10px)

    transform:translateX(10px);
    -webkit-transform:translateX(10px)
    transform:scale(0.5,0.5);
    -webkit-transform-origin:left top;
    -webkit-transform:scale(0.5,0.5);

    -webkit-transform-origin:left top;
    -webkit-transform:rotate(10deg);
    -webkit-transform:scaleX(0.5);

    -webkit-transform:skew(10deg,10deg);//斜切

    -webkit-transform:skewX(10deg);

    -webkit-transform:matrix(1,0.1,0.1,1,100,100)


    transform:translate(0px,30px);

    ************

    <style>
    .one{
    200px;height:200px;border:1px solid red;
    -webkit-transform:rotate(10deg);
    }
    </style>
    <script>
    window.onload=function () {
    var div=document.getElementsByTagName("div")[0];
    var angle=0;
    setInterval(function(){
    angle++;
    setCss3(div,{transform:"rotate("+angle+"deg)","transform-origin":"50% 50%"});
    },60)

    }

    function setCss3 (obj,attrObj) {
    for (var i in attrObj) {
    var newi=i;
    if(newi.indexOf("-")>0){
    var num=newi.indexOf("-");
    newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase());
    }
    obj.style[newi]=attrObj[i];
    newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());
    obj.style["webkit"+newi]=attrObj[i];
    obj.style["moz"+newi]=attrObj[i];
    obj.style["o"+newi]=attrObj[i];
    obj.style["ms"+newi]=attrObj[i];
    }
    }
    </script>
    </head>

    <body>
    <div class="one">
    </div>

    ***简单的时钟demo*****************************

    <style>
    .one{
    240px;height:240px;border:1px solid #888;
    border-radius:50%;box-shadow:2px 2px 4px #111;
    background:-webkit-gradient(radial,120 120,0,120 120,120,from(#ffe),to(#eee));
    background:-moz-radial-gradient(circle closest-side,#ffe 0%,#eee 100%);
    position:relative;
    }
    </style>
    <script src="css3.js"></script>
    <script>

    window.onload=function () {
                var div=document.getElementsByTagName("div")[0];
                drawMark (div);
                var time=new Date();
                var ha=time.getHours();
                var ma=time.getMinutes();
                var sa=time.getSeconds();
                var hours=drawPoint (div,120,120,60,5,"#111",ha*30+ma*6/12-90);
                var mins=drawPoint (div,120,120,80,4,"#555",ma*6-90);
                var seds=drawPoint (div,120,120,100,3,"#999",sa*6-90);
                setInterval(function () {
                    var time=new Date();
                    var ha=time.getHours();
                    var ma=time.getMinutes();
                    var sa=time.getSeconds();
                    setCss3(hours,{transform:"rotate("+(ha*30+ma*6/12-90)+"deg)"})
                    setCss3(mins,{transform:"rotate("+(ma*6-90)+"deg)"})
                    setCss3(seds,{transform:"rotate("+(sa*6-90)+"deg)"})
                },1000)
            }
        function drawMark (obj) {
            for (var i=0; i<60; i++) {
            var widths=3;
            var heights=6;
            if(i%5==0){
            widths=5
            heights=10;
            }
            var div=document.createElement("div");
            div.style.cssText=""+widths+"px;height:"+heights+"px;background:#111;position:absolute;top:0;left:120px;"
            setCss3(div,{transform:"rotate("+i*6+"deg)","transform-origin":"0px 120px"})
            obj.appendChild(div);
            }
        }
        function drawPoint (obj,startx,starty,width,height,color,angle) {
            var div=document.createElement("div");
            div.style.cssText=""+width+"px;height:"+height+"px;position:absolute;top:"+starty+"px;left:"+startx+"px;background:"+color+";";
            setCss3(div,{transform:"rotate("+angle+"deg)","transform-origin":"0px 0px"})
            obj.appendChild(div);
            return div;
        }
        function setCss3 (obj,attrObj) {
            for (var i in attrObj) {
            var newi=i;
            if(newi.indexOf("-")>0){
            var num=newi.indexOf("-");
            newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase());
            }
            obj.style[newi]=attrObj[i];
            newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());
            obj.style["webkit"+newi]=attrObj[i];
            obj.style["moz"+newi]=attrObj[i];
            obj.style["o"+newi]=attrObj[i];
            obj.style["ms"+newi]=attrObj[i];
            }
        }
    View Code

    </script>
    </head>
    <body>
    <div class="one">
    </div>
    </body>

    *******************************************
    3D哈哈哈哈哈哈

    transform 向元素应用 2D 或 3D 转换函数。
    transform-origin 允许你改变被转换元素的位置。 Firefox 支持 -moz-transform-origin 属性,但仅限于 2D 转换。 Opera 支持 -o-transform-origin 属性,但仅限于 2D 转换。 Safari 和 Chrome 支持 -webkit-transform-origin 属性,同时适用于 2D 和 3D 转换。
    transform-style 规定被嵌套元素如何在 3D 空间中显示。 flat子元素将不保留其 3D 位置。 preserve-3d 子元素将保留其 3D 位置 只有webkit可用
    perspective 规定 3D 元素的透视效果。 只有webkit可用
    perspective-origin 规定 3D 元素的底部位置。 只有webkit可用
    backface-visibility 定义元素在不面对屏幕时是否可见。 visible 背面可见 hidden 背面不可见

    -------------

    matrix3d(n,n,n,n,n,n, n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
    translate3d(x,y,z) 定义 3D 转化。
    translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
    translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
    translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
    scale3d(x,y,z) 定义 3D 缩放转换。
    scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
    scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
    scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
    rotate3d(x,y,z,angle) 定义 3D 旋转。
    rotateX(angle) 定义沿 X 轴的 3D 旋转。
    rotateY(angle) 定义沿 Y 轴的 3D 旋转。
    rotateZ(angle) 定义沿 Z 轴的 3D 旋转。

    *******************************************

    <style>
    .out{
    300px;height:300px;border:1px solid red;margin:0 auto;
    perspective:500px;

    perspective-origin:50px 50px;

    transform-style:preserve-3d;/*子元素可以含有3d效果*/

    /*
    transform:rotateY(60deg);
    */
    }
    .inner{
    200px;height:200px;border:1px solid blue;
    margin-top:50px;margin-left:50px;
    /*
    transform-origin:top center -100px;
    */
    transform:rotateX(70deg);
    }
    </style>
    </head>
    <body>
    <div class="out">
    <div class="inner">
    </div>
    </div>
    </body>

    *************************

    <style>
    ul,li{
    margin:0;padding:0;list-style:none;
    }
    .out{
    150px;height:150px;padding:150px;border:1px solid red;
    margin:0 auto;perspective:500px;
    }
    .box{
    150px;height:150px;border:1px solid blue;position:relative;transform-style:preserve-3d;
    }
    .box li{
    150px;height:150px;position:absolute;
    line-height:150px;text-align:center;font-size:20px;
    }
    .box li:nth-of-type(1){
    background:red;top:-150px;left:0;
    transform:rotateX(-45deg);transform-origin:bottom;
    }
    .box li:nth-of-type(2){
    background:pink;top:0px;left:-150px;
    transform:rotateY(45deg);transform-origin:right;
    }
    .box li:nth-of-type(3){
    background:green;top:-0;left:0;
    }
    .box li:nth-of-type(4){
    background:yellow;top:0px;left:150px;
    transform:rotateY(-45deg);transform-origin:left;
    }
    .box li:nth-of-type(5){
    background:blue;top:150px;left:0;
    transform:rotateX(45deg);transform-origin:top;
    }
    .box li:nth-of-type(6){
    background:orange;top:0px;left:0;
    transform:translateZ(150px);
    }
    </style>
    </head>

    <body>
    <div class="out">
    <ul class="box">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    </ul>
    </div>
    </body>

    *******************************

    <style>
    ul,li,dl,dd{
    margin:0;padding:0;list-style:none;
    }
    .out{
    150px;height:150px;padding:150px;border:1px solid red;
    margin:0 auto;perspective:500px;position:relative;
    }
    .box{
    150px;height:150px;position:relative;transform-style:preserve-3d;
    transform-origin:50% 50% 75px;
    }
    .box li{
    150px;height:150px;position:absolute;
    line-height:150px;text-align:center;font-size:20px;
    }
    .box li:nth-of-type(1){
    background:red;top:-150px;left:0;
    transform:rotateX(-90deg);transform-origin:bottom;
    }
    .box li:nth-of-type(2){
    background:pink;top:0px;left:-150px;
    transform:rotateY(90deg);transform-origin:right;
    }
    .box li:nth-of-type(3){
    background:green;top:-0;left:0;
    }
    .box li:nth-of-type(4){
    background:yellow;top:0px;left:150px;
    transform:rotateY(-90deg);transform-origin:left;
    }
    .box li:nth-of-type(5){
    background:blue;top:150px;left:0;
    transform:rotateX(90deg);transform-origin:top;
    }
    .box li:nth-of-type(6){
    background:orange;top:0px;left:0;
    transform:translateZ(150px);
    }
    .btns{
    position:absolute;300px;height:30px;left:150px;top:350px;
    }
    .btns dd{
    15px;height:15px;border-radius:50%;
    box-shadow:1px 1px 2px #111;
    float:left;margin-right:15px;background:#ccc;cursor:pointer;
    }
    </style>
    <script src="css3.js"></script>
    <script>
    window.onload=function () {
    var box=document.getElementsByTagName("ul")[0];
    var btns=document.getElementsByTagName("dd");
    var num=0;

    function move () {
    num++;
    if(num==4){
    num=0;
    }
    changeA(box,(num-1)*90,num*90);
    for (var i=0; i<btns.length; i++) {
    btns[i].style.backgroundColor="#ccc";
    }
    btns[num].style.backgroundColor="red";
    }
    var t= setInterval(move,4000)

    for (var i=0; i<btns.length; i++) {
    btns[i].index=i;
    btns[i].onclick=function () {
    for (var i=0; i<btns.length; i++) {
    btns[i].style.backgroundColor="#ccc";
    }
    this.style.backgroundColor="red";
    changeA(box,(this.index-1)*90,this.index*90);
    num=this.index
    }

    btns[i].onmouseover=function () {
    clearInterval(t);
    }
    btns[i].onmouseout=function () {
    t= setInterval(move,4000)
    }

    }

    }

    function changeA (obj,startA,endA) {
    clearInterval(obj.t);
    obj.t=setInterval(function(){
    if(startA==endA){
    clearInterval(obj.t);
    }else{
    var speed=(endA-startA)*0.3;
    speed=speed<0?Math.floor(speed):Math.ceil(speed);
    startA+=speed;
    setCss3(obj,{transform:"rotateY("+(startA+speed)+"deg)"})
    }
    },100)
    }
    </script>
    </head>

    <body>
    <div class="out">
    <ul class="box">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    </ul>
    <dl class="btns">
    <dd style="background:red"></dd><dd></dd><dd></dd><dd></dd>
    </dl>
    </div>
    </body>

    ************************************

    css3过渡:

    transition 简写属性,用于在一个属性中设置四个过渡属性。 transition: property duration timing-function delay;
    transition-property 规定应用过渡的 CSS 属性的名称。 transition-property: none|all|property;
    transition-duration 定义过渡效果花费的时间。默认是 0。 transition-duration: time; 规定完成过渡效果需要花费的时间(以秒或毫秒计)。 默认值是 0,意味着不会有效果。
    transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。 详情见 过渡效果函数
    transition-delay 规定过渡效果何时开始。默认是 0。 transition-delay: time; 规定在过渡效果开始之前需要等待的时间,以秒或毫秒计。

    linear 

    规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。

    ease 

    规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。

    ease-in 

    规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。

    ease-out 

    规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。

    ease-in-out 

    规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

    cubic-bezier(n,n,n,n) 

    在 cubic-bezier 函数中定义自己的值。可能的值是&nbs

    ------------------

    火狐好用

    <style>
    .one{
    200px;height:200px;border:1px solid red;
    -webkit-transition:width 2s cubic-bezier(0.2,-0.1,0.8,1.3) 2s;
    }
    .one:hover{
    800px;
    }
    </style>
    </head>
    <body>
    <div class="one">

    </div>

    **css3倒影**********************

     box-reflect

    none 无倒影
    <direction> above:指定倒影在对象的上边 below: 指定倒影在对象的下边 left: 指定倒影在对象的左边 right: 指定倒影在对象的右边
    <offset> <length>:用长度值来定义倒影与对象之间的间隔。可以为负值 <percentage>: 用百分比来定义倒影与对象之间的间隔。可以为负值
    <mask-box-image> none:无遮罩图像 <url>:使用绝对或相对地址指定遮罩图像。 <linear-gradient>:使用线性渐变创建遮罩图像。 <radial-gradient>:使用径向(放射性)渐变创建遮罩图像。 <repeating-linear-gradient>:使用重复的线性渐变创建背遮罩像。 <repeating-radial-gradient>: 使用重复的径向(放射性)渐变创建遮罩图像

    *******demo*****

    <style>
    body{
    background:#000;
    }
    .out{
    200px;height:300px;-webkit-perspective:800px;
    margin:0 auto;
    }
    .box{
    100%;height:100%;-webkit-transform-style:preserve-3d;
    }
    img{
    /*
    -webkit-transform-origin:bottom;
    */
    -webkit-transition:2s -webkit-transform ease,1s width ease 2s;

    -webkit-box-reflect:below 5px -webkit-gradient(linear,50% 0,50% 100%, color-stop(0,rgba(0,0,0,0)),color-stop(0.5,rgba(0,0,0,0.01)),
    color-stop(0.8,rgba(0,0,0,0.4)),color-stop(1,rgba(0,0,0,0.8))
    );
    }
    img:hover{
    -webkit-transform:rotateX(30deg) rotateY(30deg);;
    300px;

    }
    </style>
    </head>

    <body>
    <div class="out">
    <div class="box">
    <img src="1.jpg" width=200 height=300>
    </div>
    </div>
    </body>

    ******************************************

    <!DOCTYPE html>
    <html>
    <head>
    <title>noTitle</title>
    <meta charset="">
    <link rel="stylesheet" href="">
    <style>
    ul,li{
    padding:0;margin:0;list-style:none;
    }
    .out{
    800px;height:350px;border:1px solid red;
    margin:100px auto;-webkit-perspective:1100px;position:relative;
    }
    .box{
    100%;height:87px;position:absolute;-webkit-transform-style:preserve-3d;
    -webkit-transition:all 3s ease;
    -webkit-transform-origin:50% 50% 25px;
    }
    .box li{
    position:absolute;100%;height:100%;
    }
    .box li:nth-of-type(1){
    height:50px;background:#000;top:-50px;left:0;
    -webkit-transform-origin:bottom;
    -webkit-transform:rotateX(-90deg);
    }
    .box li:nth-of-type(2){
    50px;background:#000;top:0px;left:-50px;
    -webkit-transform-origin:right;
    -webkit-transform:rotateY(90deg);
    }
    .box li:nth-of-type(3){
    background:url(1.jpg) no-repeat;
    top:0px;left:0;
    }
    .box li:nth-of-type(4){
    50px;background:#000;top:0px;left:800px;
    -webkit-transform-origin:left;
    -webkit-transform:rotateY(-90deg);
    }
    .box li:nth-of-type(5){
    height:50px;background:#000;top:87px;left:0;
    -webkit-transform-origin:top;
    -webkit-transform:rotateX(90deg);
    }
    .box li:nth-of-type(6){
    background:url(2.jpg) no-repeat;
    top:0px;left:0;
    -webkit-transform:translateZ(50px);
    }
    .btn{
    30px;height:30px;border-radius:50%;
    background:#ccc;cursor:pointer;position:absolute;
    top:500px;left:300px;
    }
    </style>
    <script src="css3.js"></script>
    <script>
    window.onload=function () {
    var out=document.getElementsByClassName("out")[0];
    var btn=document.getElementsByClassName("btn")[0];
    var str="";
    for (var i=0; i<4; i++) {
    str+="<ul class='box' style='left:0;top:"+i*87+"px'><li> </li><li> </li><li style='background-position:0 "+(-i*87)+"px'></li><li></li><li></li><li style='background-position:0 "+(-i*87)+"px'></li></ul>"
    }
    out.innerHTML=str;
    var boxs=document.getElementsByClassName("box");
    for (var i=0; i<boxs.length; i++) {

    }
    var angle=0;
    btn.onclick=function () {
    angle+=180;
    if(angle>180){
    angle=0;
    }
    for (var i=0; i<boxs.length; i++) {
    setCss3(boxs[i],{transform:"rotateY("+angle+"deg)"})
    setCss3(boxs[i],{transition:"all 2s ease "+Math.random()*1.5+"s"})
    }
    }
    }

    /***这就是css3.js************************/

    function setCss3 (obj,attrObj) {
    for (var i in attrObj) {
    var newi=i;
    if(newi.indexOf("-")>0){
    var num=newi.indexOf("-");
    newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase());
    }
    obj.style[newi]=attrObj[i];
    newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());
    obj.style["webkit"+newi]=attrObj[i];
    obj.style["moz"+newi]=attrObj[i];
    obj.style["o"+newi]=attrObj[i];
    obj.style["ms"+newi]=attrObj[i];
    }
    }

    /***functions.js**********/


    //ͨ¹ýÀàÃû»ñÈ¡¶ÔÏó
    /*
    classname Ö¸¶¨ÕÒµÃÀàÃû
    [obj] Ö¸¶¨Ò»¸ö²éÕÒ·¶Î§
    */
    function getClass (classname,obj) {
    var obj=obj||document;
    var arr=[];
    if(obj.getElementsByClassName){
    return obj.getElementsByClassName(classname)
    }else{
    var alls=obj.getElementsByTagName("*");
    for (var i=0; i<alls.length; i++) {
    if(checkclass(alls[i].className,classname)){
    arr.push(alls[i])
    }
    }
    return arr;
    }
    }
    function checkclass (startclass,endclass) {
    var arr=startclass.split(" ");
    for (var i=0; i<arr.length; i++) {
    if(arr[i]==endclass){
    return true;
    }
    }
    return false;
    }

    //»ñµÃ´¿Îı¾
    /*
    obj Òª»ñÈ¡µÄ¶ÔÏó
    [val] ÒªÉèÖõÄÖµ
    */
    function getText (obj,val) {
    if(document.all){
    if(val){
    obj.innerText=val;
    }else{
    return obj.innerText;
    }
    }else{
    if(val){
    obj.textContent=val;
    }else{
    return obj.textContent;
    }
    }
    }
    //»ñÈ¡ÔªËصÄÑùʽ
    /*
    obj Òª»ñÈ¡µÄ¶ÔÏó
    attr Òª»ñÈ¡µÄÊôÐÔ
    */
    function getStyle (obj,attr) {
    if(obj.currentStyle){
    return obj.currentStyle[attr];
    }else{
    return getComputedStyle(obj,null)[attr];
    }
    }

    //»ñÈ¡ËùÓеÄ×ÓÔªËØ

    function getChilds (obj) {
    var childs=obj.childNodes;
    var arr=[];
    for (var i=0; i<childs.length; i++) {
    if(childs[i].nodeType==3){
    continue;
    }else{
    arr.push(childs[i])
    }
    }
    return arr;
    }

    //»ñÈ¡µÚÒ»¸ö×ÓÔªËØ
    function getFirst (obj) {
    var first=obj.firstChild;
    if(first==null){
    return false;
    }
    while (first.nodeType==3) {
    first=first.nextSibling;
    if(first==null){
    return false;
    }
    }
    return first;
    }

    //»ñÈ¡×îºóÒ»¸ö×ÓÔªËØ
    function getLast (obj) {
    var last=obj.lastChild;
    if(last==null){
    return false;
    }
    while (last.nodeType==3) {
    last=last.previousSibling;
    if(last==null){
    return false;
    }
    }
    return last;
    }

    //»ñÈ¡ÏÂÒ»¸öÐÖµÜÔªËØ
    function getNext(obj) {
    var next=obj.nextSibling;
    if(next==null){
    return false;
    }
    while (next.nodeType==3) {
    next=next.nextSibling;
    if(next==null){
    return false;
    }
    }
    return next;
    }

    //»ñÈ¡ÉÏÒ»¸öÐÖµÜÔªËØ
    function getUp(obj) {
    var up=obj.previousSibling;
    if(up==null){
    return false;
    }
    while (up.nodeType==3) {
    up=up.previousSibling;
    if(up==null){
    return false;
    }
    }
    return up;
    }

    //Ìí¼Ó¶à¸öʼþ
    function addEvent (obj,ev,fn) {
    if(obj.attachEvent){
    obj.attachEvent("on"+ev,function () {
    fn.call(obj);
    });
    }else{
    obj.addEventListener(ev,fn,false);
    }
    }


    //ÅжÏij¸öÔªËØÊÇ·ñ°üº¬ÓÐÁíÍâÒ»¸öÔªËØ
    function contains (parent,child) {
    if(parent.contains){
    return parent.contains(child) && parent!=child;
    }else{
    return (parent.compareDocumentPosition(child)===20);
    }
    }

    //ÅжÏÊó±êÊÇ·ñÕæÕýµÄ´ÓÍⲿÒÆÈ룬»òÕßÊÇÕæÕýµÄÒƳöµ½Íⲿ£»

    function checkHover (e,target) {
    if(getEvent(e).type=="mouseover"){
    return !contains(target,getEvent(e).relatedTarget || getEvent(e).fromElement)&&
    !((getEvent(e).relatedTarget || getEvent(e).fromElement)===target)
    }else{
    return !contains(target,getEvent(e).relatedTarget || getEvent(e).toElement)&&
    !((getEvent(e).relatedTarget || getEvent(e).toElement)===target)
    }
    }

    //»ñµÃʼþ¶ÔÏó
    function getEvent (e) {
    return e||window.event;
    }

    /*
    obj Òª²Ù×÷µÄ¶ÔÏó
    overfun Êó±êÒÆÈëÐèÒª´¦ÀíµÄº¯Êý
    outfun Êó±êÒƳýÐèÒª´¦ÀíµÄº¯Êý
    */
    function hover (obj,overfun,outfun) {
    if(overfun){
    obj.onmouseover=function (e) {
    if(checkHover(e,obj)){
    overfun.call(obj);
    }
    }
    }
    if(outfun){
    obj.onmouseout=function (e) {
    if(checkHover(e,obj)){
    outfun.call(obj);
    }
    }
    }
    }


    /*
    Êó±ê¹öÂÖʼþ
    */

    function mouseScroll (obj,upfun,downfun) {
    if(obj.attachEvent){
    obj.attachEvent("onmousewheel",scrollFn); //IE¡¢ opera
    }else if(obj.addEventListener){
    obj.addEventListener("mousewheel",scrollFn,false); //chrome,safari -webkit-
    obj.addEventListener("DOMMouseScroll",scrollFn,false); //firefox -moz-
    }
    function scrollFn(e) {
    var ev=e||window.event;
    var val=ev.wheelDelta||ev.detail;
    if(val==120||val==-3){
    if(upfun){
    upfun.call(obj)
    }
    }

    if(val==-120||val==3){
    if(downfun){
    downfun.call(obj)
    }
    }

    if (ev.preventDefault )
    ev.preventDefault(); //×èֹĬÈÏä¯ÀÀÆ÷¶¯×÷(W3C)
    else
    //IEÖÐ×èÖ¹º¯ÊýÆ÷ĬÈ϶¯×÷µÄ·½Ê½
    ev.returnValue = false;
    }
    }


    </script>
    </head>
    <body>
    <div class="out">

    </div>
    <div class="btn">
    </div>
    </body>
    </html>

    ********************************

     ***************************

  • 相关阅读:
    <Android 基础(二十六)> 渐变色圆角Button
    Java 中父类怎么调用子类的方法?
    <Android 基础(二十五)> Frame Animation
    Java基础知识点
    HTTP请求流程(二)----Telnet模拟HTTP请求
    telnet远程登录协议
    HTTP协议详解
    STM32 SPI接口的NSS引脚
    TCP/IP
    以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
  • 原文地址:https://www.cnblogs.com/coding4/p/5450338.html
Copyright © 2020-2023  润新知