Jquery 定时事件与鼠标事件
以下脚本被设置为由jQueryJquery 定时事件与鼠标事件,jquery,scroll,jquery-animate,setinterval,Jquery,Scroll,Jquery Animate,Setinterval,以下脚本被设置为由jQuerymouseenter事件触发,但现在需要在初始页面滚动时触发,并每10秒重新运行一次,用户无需进行任何交互。令我非常沮丧的是,我还不能用这些规范创建一个工作版本 我怀疑我需要使用javascript间隔,但我没有正确地使用它 jQuery(document).ready(function($) { function calcPoint(x1, y1, degrees, dist) { var radians = degrees * (Math.PI / 18
mouseenter
事件触发,但现在需要在初始页面滚动时触发,并每10秒重新运行一次,用户无需进行任何交互。令我非常沮丧的是,我还不能用这些规范创建一个工作版本
我怀疑我需要使用javascript间隔,但我没有正确地使用它
jQuery(document).ready(function($) {
function calcPoint(x1, y1, degrees, dist) {
var radians = degrees * (Math.PI / 180);
var x2 = Math.round(x1 + (Math.sin(radians) * dist));
var y2 = Math.round(y1 + (Math.cos(radians) * dist));
return [x2, y2];
}
var $cont = $('#bubbles');
var $items = $cont.find('li');
var distance = 500; // distance for the items to travel
var duration = 750; // milliseconds
var delay = 10000; // milliseconds
var explode = function() {
$items.each(function(i) {
var $item = $(this);
// store the original position
var pos = $item.position();
if ($item.data('starting') == undefined) {
$item.data('starting', pos);
}
//
var angle = Math.floor(Math.random()*(360 + 1));
var dest = calcPoint(pos.left, pos.top, angle, distance);
$item.animate({
left: dest[0],
top: dest[1],
opacity: 0,
}, duration);
});
};
$cont.one('mouseenter', explode);
$cont.mouseleave(function() {
$items.each(function() {
var $item = $(this);
var dest = $item.data('starting');
$item.animate({
left: dest.left,
top: dest.top,
opacity: 1
}, duration);
});
setTimeout(function() {
$cont.one('mouseenter', explode);
}, delay);
});
您只需每隔10秒触发一次mouseenter
事件
您只需每隔10秒触发一次mouseenter
事件
如果您想让它更短,插件“jquery timing”允许以下语法:
$cont.repeat(10000).trigger('mouseenter');
如果您想让它更短,插件“jquery计时”允许以下语法:
$cont.repeat(10000).trigger('mouseenter');
setInterval真的没有那么复杂:setInterval真的没有那么复杂:它有点粗糙,但它可以避免您篡改原始代码……它有点粗糙,但可以避免您篡改原始代码……jQuery计时看起来很不错。谢谢你的提示。jQuery-timing看起来很不错。谢谢你的提示。