0

我有一个红色 div,用户可以在屏幕上的任意位置单击并拖动它。灰色 div 相对于红色 div 定位,并随着红色 div 的移动而自动更新。使用鼠标滚轮滚动应该会导致红色 div(以及随后的灰色 div)从它们所在的任何位置动画到窗口中心,然后停止。

到目前为止,我有当前坐标、目标坐标和距离,以及以度为单位的角度。他们正在被记录到控制台。

到目前为止我所拥有的:http: //plnkr.co/edit/Oi517Hbat7WgIoOu0oFW

任何帮助,将不胜感激。

4

2 回答 2

2

用于document.body.clientWidth 获取浏览器窗口的宽度并document.body.clientHeight获取高度,然后将 div 设置为中心,即:-

var mydiv = document.getElementById('mydivid');
mydiv.top = ((parseInt(document.body.clientHeight) / 2) - (parseInt(myDiv.Height) / 2)) +'px';
mydiv.left = ((parseInt(document.body.clientWidth) / 2) - (parseInt(myDiv.Width) / 2)) +'px';

如果您希望它“滑动”到中心,您可以在 CSS 中添加一些变换样式

    div.#mydiv {
    -webkit-transition: all 1.0s ease-in-out;  
    -moz-transition: all 1.0s ease-in-out;  
    -o-transition: all 1.0s ease-in-out;  
    -ms-transition: all 1.0s ease-in-out;  
    transition: all 1.0s ease-in-out;  
}

动画移动到中心超过 1 秒的时间范围

于 2013-09-16T06:24:44.227 回答
0

你在用jquery吗?

使用 .animate() 你可以告诉它基于 CSS 属性移动(来自http://api.jquery.com/animate/

$( "#mydiv" ).animate({
  width: "70%",
  opacity: 0.4,
  marginLeft: "0.6in",
  fontSize: "3em",
  borderWidth: "10px"
}, 1500 );
于 2013-09-16T05:40:40.043 回答