javascript - Jquery 在圆形路径中移动对象

标签 javascript jquery html css

我在滚动时以圆形路径移动对象时遇到问题,该对象一直以之字形移动。我不知道如何解决这个问题,我认为我的公式不正确。我使用 css translate 来移动对象。我希望你能帮助我修复我的代码,所有旋转都发生在滚动上,这是我的代码:

<html>
    <head>
        <style>
            body { 
                height: 20000px; 
            }

            .tarz {
                width: 50px;
                height: 50px;
                background: #F00 ;
                position: fixed;
            }

        </style>

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">

            $(document).ready(function() {

                window.objYFlag = "down";
                window.objXFlag = "right";
                window.objY = 0;
                window.objX = 50;
                window.objYMax = 50;
                window.objXMax = 50;

                $(window).scroll(function() {

                    var scroll = $(document).scrollTop();

                    window.objX = ( 50 - (window.objY - scroll) + window.objX ); 
                    //formula for x

                    if (window.objY === window.objYMax) {
                        window.objYFlag = "up";
                    }

                    if (window.objY === 0) {
                        window.objYFlag = "down";
                    }

                    if (window.objYFlag === "down") {
                        window.objY = window.objY + 1;
                    } else {
                        window.objY = window.objY - 1;
                    }

                    console.log(window.objX + ' ' + window.objY);
                    $('.tarz').css('transform', 'translate(' + window.objX + 'px,' + window.objY + 'px)');

                });

            });
        </script>
    </head>
    <body>
        <div class="tarz"></div>
    </body>
    <html>

谢谢大家,我希望你能帮助我。 :)

最佳答案

复习三 Angular 函数的时间到了。这是您想要实现的目标吗?

 $(window).scroll(function () {
     var scroll = $(document).scrollTop();
     window.objX = 50+100*Math.cos(scroll/25);
     window.objY = 50+100*Math.sin(scroll/25);
     $('.tarz').css('transform', 'translate(' + window.objX + 'px,' + window.objY + 'px)');
 });

http://jsfiddle.net/mblase75/waLK9/

摆弄数字以获得所需的速度和位置。

关于javascript - Jquery 在圆形路径中移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129507/

相关文章:

javascript - 在 guard 中检测导航中止/取消

javascript - 使用 jquery 函数添加/删除类

html - 将内联 block 与 nowrap 一起使用时,子 div 超出父 div

javascript - 单击 jquery 中的链接更改图像源

javascript - 单击不应发送表单的按钮时如何在 Angular 中关闭表单验证

javascript - Knockout.js 根据另一个下拉列表更改下拉列表的可能值

javascript - 将 option 标签的值添加到 div

javascript - Bootstrap 切换多个元素上的文本更改

html - html中如何修改 "select"的样式

javascript - 为什么网站收不到 POST 请求?