• 百度客户端首页的图片轮换效果


    今天看了下css3中关于动画的一些内容,想到自己手机上了装了一个百度的客户端。有个换一批的功能。点击后,可以快速浏览不同的分类信息。网上找了个截图。

    这个图没显示全,最下面那个 换一批 的按钮没显示出来。

    点击换一批后,上面的新闻会以一种旋转的动画方式进行替换新的新闻,我个人觉得那种动画方式 有点像开关窗户的动作,很有意思。
    然后就是看下,怎么实现效果的呢,

    css3中的动画 网上介绍的有translate(x,y)---移动,rotate(deg)---旋转,skew(x,y)---缩放,和这里的效果好像都不太沾边。我查了好多才知道,这里用的是rotate

    但并不是直接给一个角度就可以的,用的是rotateY(deg)-----没错,rotate还有rotateX,rotateY()两个方法,传的参数值和rotate一样,只要传个角度就可以。

    #two{
         width : 200px;
         height : 100px;
         background : #ccc;
         display:inline-block;                    
    }
    .a{
        -moz-animation: change 1s linear;
        -webkit-animation : change 1s linear;
     }
                
                
     @-moz-keyframes change{
         25% {-moz-transform: rotateX(180deg);}
     }
     @-webkie-keyframes change{
         25% {-moz-transform: rotateX(180deg);}
     }

    样式出来了,现在要做的是,点击标签,背景展示换窗口的效果,同时标签内的内容页发生了变化。这样的话就需要添加事件了。

    function id(id){
        return document.getElementById(id);
    }
    
    id('two').onclick = function(){
        id('two').className = 'a';
        id('two').innerHTML = 'new content';
                 
    };

    嗯 点击后,因为增加了动画样式,所以背景展示换窗口效果,内容也变化了,但是再点击,由于目前标签已经有了'a'样式,因此,就不再展示换窗口效果了。

    怎么解决,很简单,点击标签的时候,先添加动画样式,动画展示完后,再清掉动画样式。那下一个问题,如何知道css3动画已经展示完了呢,如何监听css3的动画事件呢

    两个解决方案,第一个,制定一个计时器,和动画的时间一样长。

    第二个:监听css3的动画事件(百度真好,我是百度才知道原来还有这么些事件的。)

     当-webkit-animation动画结束时有一个webkitAnimationEnd事件,只要监听这个事件就可以了。-----缺点(值适用于chrome。火狐下还是要用计时器,悲催)

    同 webkitAnimationEnd类似的还有 动画的开始事件 ---webkitAnimationStart;

    因此代码再次的修订如下:

            function id(id){
            return document.getElementById(id);
        }
        
        id('two').onclick = function(){
            id('two').className = 'a';
                 
        };
        
            
        id('two').addEventListener('webkitAnimationEnd',function(){
            id('two').className = '';
            id('two').innerHTML = 'new content';
        })

    在chrome下试了下,木有问题,附上css3中,对rotateX以及rotateY的介绍。

  • 相关阅读:
    《精通CSS网页布局》读书报告 ----2016-12-5补充
    定位始终居中显示
    IntelliJ idea的使用
    模拟发送http请求
    知识漏洞
    【NX二次开发】Block UI 半径尺寸(沿曲线的位置)
    【NX二次开发】Block UI 角度尺寸
    【NX二次开发】Block UI 线性尺寸
    【NX二次开发】Block UI 表达式
    【NX二次开发】Block UI 整形
  • 原文地址:https://www.cnblogs.com/lxin/p/3548554.html
Copyright © 2020-2023  润新知