- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是个新手。我的动画有点故障。我相信这是一个排队问题,但我只想要一个悬停/暂停效果,从我的阅读来看,我觉得我正在走上错误的解决方案。
The way I understand the queue is to handle a series of smaller animations to trigger at different time to achieve a larger effect. I've been doing large amounts of reading on this, but I feel this is the wrong solution for what I'm trying to achieve. My research is turning up hover over/animate up then hover off/animate down. I just want to resume the animation, so again I feel I'm heading down the wrong path on this. I'm trying very hard to find a native solution but am aware there are various plugins.
I've left the comments in to show where I've been. If it's preferred to have these stripped out, please do mention so I'll know for next time.
我想要实现的目标:悬停在上,幻灯片停止,悬停在外,幻灯片恢复。
我的问题:当鼠标反复悬停/移出时,动画速度会显着减慢。
我尝试过但效果有限或没有成功:
- 清除队列并将结果输出到控制台,它仍然很慢向下。
- 将左侧位置值设置为其当前左侧值,否运气好。
- 队列计数器应该准确,低于幻灯片放映。
在这里找到 JS Fiddle:http://jsfiddle.net/qWQCQ/
JS 在此处修改停止值:http://jsfiddle.net/qWQCQ/1/下面的代码示例:
Javascript:
$("document").ready(function(){
//----------------------------------------CONFIG--------------------------------------------------------------
var resetNum = 0;//FOR RESET PURPOSE
var itemRightMargin = 10;//YOUR MARGIN VALUE
var itemWidth = 100;//WIDTH OF YOUR IMAGES, NOT INCLUDING M/P
//----------------------------------------END CONFIG----------------------------------------------------------
$('.w-slides .first').clone().appendTo('.w-slides').removeClass('first').addClass('last');
var clipWidth = (itemRightMargin+itemWidth)*$('.w-slides li').length;
var containerWidth = clipWidth-itemRightMargin;
var clipCapacity = $('.w-slides li').length;
var animation = (containerWidth*-1)+itemWidth;
//SET THE STRUCTURE
$('.w-slideshow').css('width', itemWidth);
$('.w-multi').css('width', containerWidth);
$('.w-slides').css('width', clipWidth);
$('.w-slides li').css({'float':'left', 'width':itemWidth, 'margin-right':itemRightMargin+'px'});
$('.w-slides li:last').css('margin-right', 0);
$('.w-slideshow, .w-multi').css({'padding':resetNum});
$('.w-multi').css({'margin':resetNum});
function animateMe(){
$('.w-multi').animate({left:animation}, 6000, 'linear', function()
{
$('.w-multi').css('left', 0);
animateMe();
});
}
$('.w-multi').hover(function(){
$(this).stop(false, false);
//$(this).stop().animate({left:animation}, 6000, 'linear');
//var thisPosition = $(this).css('left');
//alert(thisPosition);
//$(this).css('left',thisPosition);
var queueNum = $('.w-multi').queue('fx').length;
//(function(){console.log($(this).queue('fx').length);});
$('#queue').html(queueNum);
//$(this).queue(function(){console.log($(this).queue('fx').length);});
},
function(){
animateMe();
});
animateMe();
});HTML:
<div>
<div class="w-slideshow">
<div class="w-multi">
<ul class="w-slides">
<li class="first"><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-1.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-2.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-3.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-4.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-5.jpg" /></a></li>
</ul>
</div>
</div>
<div id="queue" style="width:150px; margin:0 auto; margin-top:20px;">Num of items in queue = </div>
</div>
最佳答案
首先,为一个很好、详细的问题+1。
<小时/>问题是你总是给动画 6,000 毫秒的时间来完成。如果你将动画暂停一半,那么你就已经完成了一半的工作;但您仍然给动画 6,000 毫秒的时间来完成恢复,这就是它执行速度较慢的原因。
要解决这个问题,我们需要一些:
您希望动画发生的速度(以像素/毫秒而不是更传统的公里/小时为单位测量)可以通过以下方式计算:
var speed = Math.abs(animation / 6000);
然后您的 animateMe
函数需要更新,以根据动画必须行进的距离和静态速度来计算动画完成的时间:
function animateMe() {
var el = $('.w-multi');
var distance = Math.abs(animation - el.position().left);
var time = distance / speed;
el.animate({
left: animation
}, time, 'linear', function () {
$('.w-multi').css('left', 0);
animateMe();
});
}
这可以在这里看到:http://jsfiddle.net/qWQCQ/3/
关于jquery - 使用 stop() 暂停后恢复动画很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086661/
我在 Window 2008 x64 上的 IIS 7 下托管了一个网站。 IIS 以 64 位模式运行,该站点有自己的 64 位应用程序池等。该网站大部分时间似乎运行良好,然后每小时突然卡住用户请求
我有一个 imageView 并希望它像这样工作: ImageViewer可见 5秒暂停 ImageView 不可见 5秒暂停 ImageViewer可见 等等... 我该怎么做?我试过 sleep
我在我的 JavaScript 函数中使用了下面的代码。我想在 10 秒后调用这个函数。然而该函数立即被触发!?!不确定发生了什么。 function testing() { //oth
我想暂停计时器,点击按钮后我想继续计时器计数...我搜索但找不到与此相关的功能.. 怎么办? 最佳答案 您将需要一个变量来跟踪自 Chronometer 启动以来耗时: long timeWhenSt
我目前有一个程序可以从麦克风收集声音信号并在 python 上实时显示波形。对于 matplotlib funcanimation,我正在尝试通过这种方式向我的程序添加一些暂停和启动按钮或功能。但它没
我有一个由套接字提供的热Observable。我可以使用pausable暂停套接字供稿。但是一旦“取消暂停”可观察对象,就需要显示套接字在暂停订阅时可能发送的最后一个值。我不想跟踪套接字手动发送的最后
我知道这是可能的,但我还没有找到方法,所以我在问。 在播放 3rd 方音乐(例如 Spotify)时开始在我的应用程序中播放 mp3 声音时。 Spotify 暂停,您必须恢复 Spotify,让它再
我正在尝试使用 iPhone 的前置摄像头录制有声视频。因为我还需要支持暂停/恢复功能,所以我需要使用 AVAssetWriter .我在网上找到了一个用 Objective-C 编写的示例,它几乎实
我知道互斥锁可以作为一种实现,但是我想知道是否有一种方法可以像视频播放一样暂停/恢复另一个线程。当其他正在运行的线程很复杂时,此方法更易于编程。 最佳答案 SIGTSTP是用于暂停进程的信号,如果您有
到目前为止,我已经看到了以下停止动画的技术,但我在这里寻找的是旋转 View 停止在当前的角度,而不是返回到 0。 struct DemoView: View { @State private
我一般在问有关多线程的问题。例如我锁定了一个互斥锁并恢复任务,然后我想挂起它,我的问题是,我应该在挂起之前解锁互斥锁吗?这样当我再次使用互斥锁恢复它时,它会成功恢复吗? 我刚刚开始使用多线程的东西,我
我有2个缩略图链接,单击它们时,它们会以灯箱样式打开视频。我的目标是让它们在打开时播放,在关闭时暂停(单击背景区域时关闭)。 我的HTML代码在这里: M
到目前为止,我没有将我发现的几种不同方法拼凑在一起: http://192.185.121.49/~steveobr/ 我需要所有的语音演示像第一个“商业”一样工作 正如您在实时示例中看到的那样,每个
所以我正在制作某种游戏,玩家可以在其中获得一些能力。玩家回合结束后,服务器应有 5 秒的超时时间,其中不执行任何代码,然后在该时间后结束回合。但是,如果客户端单击其中一项电源,服务器应停止 5 秒超时
我尝试将自己的方法添加到 Tween 类中以暂停/恢复所有补间。这就是我所拥有的: createjs.Tween.pauseAllTweens = function() { for ( var
我对 Azure 搜索标准级别的成本有疑问。是否可以将 Azure 搜索级别从标准更改为基本?是否可以暂时暂停 Azure 搜索标准?我在门户中没有看到此控件。我是否需要将 Azure 搜索实现重新创
如何用相同的代码制作play/Pause按钮。 - (IBAction)min:(id)sender { NSString *path = [[NSBundle mainBundle] pathF
我知道这很可能超出了沙箱范围,但我还是想问一下: 我想在我的应用程序中放置一个“暂停/播放”按钮,以暂停或播放任何背景音频。基本上,我希望实现在多任务栏中找到的播放/暂停按钮。 一个简单的例子是有人用
我正在制作一款编程游戏,玩家可以在其中对盟友的行为进行编程。玩家为给定的盟友编写decide()函数的主体,可以用任何java代码填写,但必须返回一个 Action 。我想为每个盟友提供一组有限的每个
我有功能 1 用于播放音乐,第二个用于设置实际音乐的暂停,我的暂停功能不起作用。我该如何设置暂停? function play(id){ var audio = new Audio('
我是一名优秀的程序员,十分优秀!