我想要一个屏幕元素(其ID为#sign1 )以正弦波移动。 为此我需要连续向上和向下’摆动’,同时它同时向右移动。 但我并不真正了解队列 ,这对于连续的动画来说是非常必要的。 我可以同时做2 个动画。 。 。 例如,同时向上和向右移动, 通过将queue: false放在两者上, 我可以做两个连续的动画,。 。 。 例如,向上移动,然后向下移动, 通过链接.delay(1000).queue(function(n) {在它们之间 。 。 。 但我似乎无法做三次或更多连续摆动,同时向右移动。 在下面,你看,我可以得到2次向下摆动,跳过它们之间的向上摆动,这奇怪地不起作用。 此外,这是它的小提琴: JS小提琴 使用Javascript //MOVE RIGHT FOR 7 seconds: $(“#sign1”).animate( {left: ‘+=80%’}, { duration: 7000, queue: false } ); //WOBBLE DOWN for 1 second $(“#sign1”) .animate( { top: ‘+=15%’}, { duration: 1000, queue: […]
我只是测试一个本地应用程序,并希望做这样的事情: 点击按钮,这很简单。 执行AJAX请求并创建数据库表。 创建表后,执行另一系列AJAX请求,并根据从一系列选择框中获取的一些参数填充表。 使用进度条“动画”整个事物。 令人惊讶的是,一切都很好(除了最后一点),但我遇到了一些麻烦。 该表被创建并填充,但由于某些原因,最后的AJAX请求无法正确触发,因为它没有正确传递参数。 我的ajax请求都是异步的,如果我设置它们同步,整个事情就会冻结,但所有的请求都会正确执行,即使是最后一个。 例如,假设我不想使用异步请求,以便不冻结页面并能够显示进度条。 问题如下: 是否可以两次调用相同的脚本? 有没有一种有效的方法可以避免在其他ajax请求之前执行ajax请求? 在stackoverflow中阅读了一大堆主题之后,我编辑了我的代码并尝试: 使用jQuery.AJAX原型而不是jQuery.POST 将所有内容设置为异步,以便不冻结页面并能够处理进度条 将下一个AJAX请求执行到父AJAX请求的“成功”回调中。 此时,我还有另一个问题: 通过堆叠AJAX请求,在ajax请求完成之后执行“成功”回调的所有内容实际上是否为TRUE? 这就是我的表现: $.ajax({ type: “POST”, url: ‘../libs/php libraries/agenda.php’, data: {‘action’:’create>agenda’, ‘sqlname’: createInfo}, processData: true, dataType: “json”, timeout: 60000, async: true, success: function(res) { $(‘#popup_content’).append(res.log); var dateList = new Array(); var dateObj = new Date(); var m = dateObj.getMonth(); […]
我的php服务器有问题(我的电脑是唯一的连接)。 我最初认为部分原因是因为太多的ajax请求(我有一个脚本,每次击键执行一个ajax请求)所以我实现了一个设计来控制ajax请求流入队列。 以下是我的代码: //global vars: activeAjaxThread = 0; //var describing ajax thread state ajaxQue = []; //array of ajax request objects in queue to be fired after the completion of the previous request function queRequest(ajaxObj) { ajaxQue.push(ajaxObj); if (activeAjaxThread == 0) { fireOffAjaxQue(); } else { return ‘ajax thread is running’; } } function fireOffAjaxQue […]
我正在寻找一个解决方案来推出jquery版本,Drupal本身也包括在内。 它是旧版本。 实际上没有问题 – 但是一个:DI使用.animate()函数,队列为false,没有这个属性(因为这个属性是jquery 1.7中的.animate()addet),它不是我想要的动画。 代码是: //When mouse rolls over $(“#login”).bind(‘mouseover mouseenter’,function(){ $(“#logo”).stop().delay(500).animate({top:’-44px’},{queue:false, duration:600, easing: ‘swing’}) $(“#login”).stop().animate({top:’89px’},{queue:false, duration:600, easing: ‘easeOutBounce’}) }); //When mouse is removed $(“#login”).bind(‘mouseout mouseleave’,function(){ $(“#logo”).stop().animate({top:’6px’},{queue:false, duration:600, easing: ‘easeOutBounce’}) $(“#login”).stop().animate({top:’40px’},{queue:false, duration:600, easing: ‘swing’}) }); 也许你可以帮我找到解决方案? 问题,为什么我要排除我用于此(1.8.3)的jquery版本是一个Drupal模块没有显示wysiwyg(CKEditor),当jquery 1.8.3被包含在另外,并且不幸的是我无法替换jquery jquery 1.8.3的核心版本:(
使用jQuery将一系列动画添加到单个dom元素非常简单。 jQuery很好地为我排队,我基本上不需要做任何事情。 然而,在一些元素上制作一系列动画(例如pictureDiv淡出,然后demographicsDiv淡入)要困难得多。 我写了一个插件类型的东西,使其更容易,如下所示: var something.createAnimationQueue = function () { // jQuery queues up animations on each dom element (/ jquery object) // We want to queue up animations over different dom elements so // use a jquery object on a blank element var animationQueue = $({}); return { add: function (animationFunctionContext, animationFunction) { var […]
我一直在使用jQuery的stop(true, true)方法来清除正在运行的动画,以便下一个立即启动。 我注意到第一个参数clearQueue清除了整个动画队列,但第二个参数jumpToEnd只跳转到当前运行动画的末尾而不是从队列中删除的那个。 有没有办法让它清晰并跳到所有排队动画的结尾? 我最终链接了一些stop(false, true)调用,但这只会处理3个排队的动画,例如。 $(this) .stop(false, true) .stop(false, true) .stop(false, true) .addClass(‘hover’, 200); 编辑: 根据Ates Goral的回答,我最终添加了自己的方法stopAll : $.fn.extend({ stopAll: function () { while (this.queue().length > 0) this.stop(false, true); return this; } }); $(this).stopAll().addClass(‘hover’, 200); 我希望别人觉得这很有用。
我有一个应用程序,每次用户做某事时都会自动发推文…… 如果用户愿意,用户可以每秒轻松执行一次该操作。 Twitters速率限制表示它注意到15分钟内发生了多少推文。 从技术上来说,我认为我总是低于15分钟,但似乎twitter也说“嘿,你可以在15分钟内发布15个post,但不能在15秒内发布15个post”……这是合理的我觉得…… 我想在javascript端解决这个问题。 我想有一个函数数组,我添加而不是实际调用ajax,然后有一个setTimeout外观,检查是否在数组的开头有一个函数调用,运行该函数,删除它从arrays中等待15秒再做一次。 随着时间的推移,这将有助于减慢推文(ajax调用)的速度。 这似乎是我应该用库解决的问题,但我看到的限制库似乎已经准备好忽略而不是存储中间请求。 jquery上的队列函数似乎是用于动画而且似乎过于复杂,但可能是正确答案…… 思考?
如果我这样做有什么不同: $queue.queue(function(next){ //… next(); }).queue(function(next){ //… next(); }); 与 $queue.queue(function(){ //… $(this).dequeue(); }).queue(function(){ //… $(this).dequeue(); }); 他们做同样的事情吗? 有什么区别,我应该使用哪些?
jQuery队列很烦人 – 我无法理解它… 以下函数包含4个动画,我想一个接一个地发生(不是同时发生)。 function startupAnime() { $(“#header”).animate({“opacity”:”1″},{duration:3000, queue:”global”}); $(“#header”).animate({“top”:”0px”},{duration:3000, queue:”global”}); &(“#loader”).animate({“opacity”:”0″},{duration:3000, queue:”global”}); $(“#background”).animate({“background-position” : “300px center”},{duration:3000, queue:”global”}); } $(window).load(function() { startupAnime(); }) 两个#header元素将一个接一个地动画,但其余的都在同一时间发生。 然后我发现Queue只有在你动画相同的元素时才有效! 这不是很有用……但是添加队列:“名称”显然应该将它们链接到同一个队列中……虽然这只会阻止他们为我工作。 我在这里错过了什么吗? 我不确定队列是否意味着“下一个动画将在当前一个动画结束后开始”,或者“这些动画被保存在一个等待你释放它们的队列中”可能是通过调用队列(“全局”)或其他东西! 大多数建议都讨论动画一个元素,或设置许多函数并使用回调来“迭代”函数 – 如果你问我,不是很干净。 我只是希望能够在我要求时运行动画列表。 注意:动画的“列表”可能会一次为一个元素设置动画,但我也可能希望两个或更多元素在列表中的某个点同时进行动画处理。 这是一个示例: animate element A -> then -> animate element B -> then -> animate element C and D together -> then -> […]
我想要在dom中的不同对象上执行几个动画。 我希望它们按顺序发生。 我不想这样做: $(‘#first’).show(800, function () { $(‘#second’).show(800, function () {…etc…}); 我想将所有动画(和cpu密集型函数)添加到某种队列对象中,以确保它们按顺序执行。