用CSS3实现类似苹果桌面的有趣抖动效果

通过CSS3的transform: rotate属性,每隔100毫秒切换元素左右倾斜5度,创建出类似苹果桌面的趣味抖动效果。

代码逻辑非常简单,使用css3的tranform的rotate属性让制定元素向左右倾斜5度。并且按照100毫秒的间隔交替切换。 


初步实现了抖动的效果。大家可以自己试试。

<!DOCTYPE html>
<html>
    <head>
        <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
        </script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">
        </script>
        <style type="text/css" media="screen">
            .square {
                width: 144px;
                height: 144px;
                background: #ff8040;
                margin-right: 48px;
                float: left;
            }
            
            .transformed0 {
                -webkit-transform: rotate(5deg);
                -moz-transform: rotate(5deg);
                -ms-transform: rotate(5deg);
                transform: rotate(5deg);
            }
            
            .transformed1 {
                -webkit-transform: rotate(0deg);
                -moz-transform: rotate(0deg);
                -ms-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            
            .transformed2 {
                -webkit-transform: rotate(355deg);
                -moz-transform: rotate(355deg);
                -ms-transform: rotate(35deg);
                transform: rotate(355deg);
            }
        </style>
        <script>
            $(document).ready(function(){
                direction = 1; // 1, -1
                state = 1; // 0,1,2
                oldClass = "" ;
                //这段逻辑主要是为了让状态在0,1,2间反复的切换。 
                setInterval(function(){                
                    $("#target").removeClass(oldClass);
                    if (state + direction > 2 || state + direction < 0) {
                        direction = -direction;
                    }
                    state = state + direction;
                    newClass = "transformed" + state;
                    console.log("set new class to " + newClass);
                    $("#target").addClass(newClass);
                    $("#target").innerText = newClass;
                    oldClass = newClass;
                    
                    
                }, 50);
                
            });
        </script>
    </head>
    <body style="font-size:100%;">
        <div id="target" class="square">
        	<img src="http://avatar.csdn.net/2/3/6/3_tiimfei.jpg" />
            <p>
                Lorem ipsum dolor sit amet.
            </p>
        </div>
    </body>
</html>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值