在鼠标悬停时摇摆不定
Struggling to get swing on mouseover not onload
我想让这个div只在鼠标悬停时摇摆,而不是在页面加载时摇摆。这是JS:
(function swing() {
var ang = 20,
dAng = 10,
ddAng = .5,
dir = 1,
box = document.getElementById("box");
(function setAng(ang){
box.style.WebkitTransform = 'rotate('+ang+'deg)';
box.style.MozTransform = 'rotate('+ang+'deg)';
dir = -dir;
if (dAng > 1)
dAng -= ddAng;
if (Math.abs(ang) > 0)
setTimeout(setAng, 1000, dir * (Math.abs(ang)-dAng));
})(ang);
box.mouseover = function(){
box.style.WebkitTransform = 'rotate(-20deg)';
box.style.MozTransform = 'rotate(-20deg)';
setTimeout(swing, 1000);
}
})();
可以看到,它在加载时摆动。
这里是JSFiddle: http://jsfiddle.net/qqsLW/
欢呼人
试试这个,这对我有用
(function swing() {
var ang = 20,
dAng = 10,
ddAng = .5,
dir = 1,
box = document.getElementById("box");
function setAng(ang){
box.style.WebkitTransform = 'rotate('+ang+'deg)';
box.style.MozTransform = 'rotate('+ang+'deg)';
dir = -dir;
if (dAng > 1)
dAng -= ddAng;
if (Math.abs(ang) > 0)
setTimeout(setAng, 1000, dir * (Math.abs(ang)-dAng));
};
box.onmouseover = function(){
console.log('over');
box.style.WebkitTransform = 'rotate(-20deg)';
box.style.MozTransform = 'rotate(-20deg)';
setTimeout(function(){
setAng(ang)
}, 1000);
}
}) ();
将鼠标移出swing
函数
如果你还想阻止它立即执行,不要运行swing
,即删除()
后的定义
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 手风琴可点击并悬停
- 悬停功能触发器
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- css(或jQuery)悬停时淡入淡出
- jquery快速悬停问题
- 如何在悬停时流畅地更改单词
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- Flexslider导航按钮在悬停时不可见,带有橙色框
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 在鼠标悬停时展开列表
- 导航菜单-悬停时的背景行为怪异
- OpenLayers在悬停时高亮显示功能,并在单击时选择
- jQuery悬停在没有鼠标悬停的情况下启动
- 鼠标悬停时如何居中放大背景图像
- 在鼠标悬停时摇摆不定