如何在鼠标悬停动画上平滑此效果?

发布于 2024-12-03 06:22:11 字数 764 浏览 3 评论 0原文

我有一个 div,它根据鼠标的位置向左和向右设置动画,但它太不稳定了(尤其是在 IE 中)。

我很确定它与 mousemove 函数内部的 .stop() 有关,因此在几秒钟内被调用数百次,但这是我能得到的最好的结果。我希望它是一个干净、连续的动画...

jQuery

$('#videoThumbContainer').mousemove(function(e){

    var offset = $(this).offset(),
    containerWidth = $(this).width(),
    runnerWidth = $('#videoThumbRunner').width(),
    relativeX = e.pageX - offset.left,
    difference = parseInt(containerWidth - runnerWidth),
    position = (relativeX / containerWidth) * difference;

    if (runnerWidth > containerWidth) {

        $('#videoThumbRunner').stop().animate({left: position}, 50, 'linear');
    }
});

演示

http://jsfiddle.net/cbXh5/

I have a div that it animating left and right based on the mouse's position, but it's too jittery (especially in IE).

I'm pretty sure it has something to do with a .stop() being inside the mousemove function, thus being called hundreds of times in seconds, but it's the best I can get it. I want it to be a clean, continuous animation...

jQuery

$('#videoThumbContainer').mousemove(function(e){

    var offset = $(this).offset(),
    containerWidth = $(this).width(),
    runnerWidth = $('#videoThumbRunner').width(),
    relativeX = e.pageX - offset.left,
    difference = parseInt(containerWidth - runnerWidth),
    position = (relativeX / containerWidth) * difference;

    if (runnerWidth > containerWidth) {

        $('#videoThumbRunner').stop().animate({left: position}, 50, 'linear');
    }
});

Demo

http://jsfiddle.net/cbXh5/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文