javascript - Firefox 中的 jQuery 问题

标签 javascript jquery html css firefox

我在 my website 上有问题.网站的左右两侧有一个齿轮,当你滚动网站时它会旋转。但由于某些原因,它在 Firefox 中不起作用,我不知道为什么。

旋转齿轮代码:

    <p>
    <script type="text/javascript">
        jQuery(function($) {
            var $gear1 = $('#gear1'),
                $gear2 = $('#gear2'),
                $gear3 = $('#gear3'),
                $gear4 = $('#gear4'),
                $body = $(document.body),
                bodyHeight = $body.height();
            $(window).scroll(function() {
                $gear1.css({
                    'transform': 'rotate(' + ($body.scrollTop() / bodyHeight * 360) + 'deg)'
                });
                $gear2.css({
                    'transform': 'rotate(' + ($body.scrollTop() / bodyHeight * -360) + 'deg)'
                });
                $gear3.css({
                    'transform': 'rotate(' + ($body.scrollTop() / bodyHeight * -360) + 'deg)'
                });
                $gear4.css({
                    'transform': 'rotate(' + ($body.scrollTop() / bodyHeight * 360) + 'deg)'
                });
            });
        });
    </script>

      </p>
     <p>
    <style scoped="scoped" type="text/css">
        .gear1 {
            width: 100px;
            height: 100px;
            position: fixed;
            top:220px;
            left:-50px;
        }
        .gear2 {
            width: 100px;
            height: 100px;
            position: fixed;
            top:310px;
            left:-50px;
        }
        .gear3 {
            width: 100px;
            height: 100px;
            position: fixed;
            top:220px;
            right:-50px;
        }
        .gear4 {
            width: 100px;
            height: 100px;
            position: fixed;
            top:310px;
            right:-50px;
        }

    </style>

    </p>
    <div class="gear1" id="gear1"><img src="images/gear.png" alt="gear" height="100" width="100" />
</div>

    <div class="gear2" id="gear2"><img src="images/gear.png" alt="gear" height="100" width="100" />
</div>

    <div class="gear3" id="gear3"><img src="images/gear.png" alt="gear" height="100" width="100" />
</div>

    <div class="gear4" id="gear4"><img src="images/gear.png" alt="gear" height="100" width="100" />
</div>

最佳答案

Firefox 使用 HTML 元素作为滚动条,而大多数其他浏览器使用 BODY 元素,因此在获取 scrollTop 时,通常只使用窗口是个好主意

改变

$body.scrollTop()

$(window).scrollTop()

编辑:

你可以这样做

function getScrollTop(){
    if(typeof pageYOffset!= 'undefined'){
        return pageYOffset;
    } else {
        var B = document.body;
        var D = document.documentElement;
        D = (D.clientHeight)? D: B;
        return D.scrollTop;
    }
}

jQuery(function($) {
   var $gears = $('#gear1, #gear2, #gear3, #gear4');

   $(window).on('scroll', function() { 
       var scrollTop = getScrollTop();
       $gears.css({
            'transform': 'rotate(' + (scrollTop / bodyHeight * 360) + 'deg)'
       });
   });
});

关于javascript - Firefox 中的 jQuery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958827/

相关文章:

javascript - 好的 Ajax 图表/图形库

javascript - 需要 jQuery 条件帮助,根据匹配的文本删除容器元素

jquery - Bootstrap 3 的分割按钮插入符高度小于主按钮

javascript - 从另一个 html 文件(使用 javascript/jQuery)列出本地 html 文件并为它们动态创建链接

javascript - css 从 html 获取值

javascript - 如何使用套接字 IO 在 Python 客户端和 NodeJS 服务器之间进行通信?

Javascript/Jquery 页面按顺序首先加载特定图像

javascript - 使用 localstorage 创建和存储用户对象

javascript - AJAX 删除表中选择了 PHP id 的行

javascript - 我在尝试从 Html 文本字段获取 img.src 时遇到错误