使用css transition或javascript切换div位置

时间:2014-09-28 23:11:13

标签: javascript jquery webkit css-transitions windows-desktop-gadgets

让我们说我想制作一个桌面小工具并在其中放置一些快捷方式。我想知道Windows边栏小工具的css过渡工作和/或我应该使用一些webkit前缀。 我知道这个动画对于像我这样的初学者来说可能有点过于雄心勃勃,但是当我点击中间的大盒子时,我希望那些盒子顺时针顺时针切换位置,就像这张照片 http://oi61.tinypic.com/amp211.jpg

如果使用css转换无法做到这一点,请指点一些javascript / jquery方法来做。

<div class="menu_cont">
  <div class="menu_def" id="menu_up3"></div>
  <div class="menu_def" id="menu_up2"></div>
  <div class="menu_def" id="menu_up1"></div>
  <div class="menu_def" id="menu_down3"></div>
  <div class="menu_def" id="menu_down2"></div>
  <div class="menu_def" id="menu_down1"></div>
  <div class="menu_def" id="menu_center"></div>
</div>

CSS

.menu_cont
{width:104px; height:312px; margin:10px 10px 0 0; position:relative;}

.menu_def
{position:absolute;
border:2px solid #000; border-radius:5px; box-shadow:5px 0 5px #000;}

#menu_up3
{width:40px; height:40px; top:0; right:0; background-color:#0C0;}

#menu_up2
{width:50px; height:50px; top:30px; right:10px; background-color:#066;}

#menu_up1
{width:60px; height:60px; top:70px; right:20px; background-color:#036;}

#menu_down3
{width:40px; height:40px; bottom:0; right:0; background-color:#9C3;}

#menu_down2
{width:50px; height:50px; bottom:30px; right:10px; background-color:#0FF;}

#menu_down1
{width:60px; height:60px; bottom:70px; right:20px; background-color:#09F;}

#menu_center
{width:70px; height:70px; top:119px; left:0; background-color:#03F;}

1 个答案:

答案 0 :(得分:1)

我认为你想要的是:

http://jsfiddle.net/6ta0ye3y/3/ jquery示例:

 $("#menu_center").click(function() {
    $(this).delay(400).animate({
        top: "+=60px", 
        left: "+=20px", 
        height: "-=10px", 
        width: "-=10px"
    }); 

    $("#menu_down1").delay(300).animate(
        {top: "+=50px",
         left: "+=20px", 
         height: "-=10px", 
         width: "-=10px"
        });

    $("#menu_down2").delay(200).animate({
        top: "+=40px",
        left: "+=20px",
        height: "-=12px", 
        width: "-=12px"
    });

    $("#menu_down3").delay(100).animate({
        top: "-=200px", 
        left: "+=20px"
    });
});