我不确定如何使用jQuery,但有一个CSS3属性:transform:rotate
它可以与jQuery一起使用?
transform:rotate;
-ms-transform:rotate;
-webkit-transform:rotate;
Run Code Online (Sandbox Code Playgroud)
jga*_*uld 12
试试这个小提琴:
在完全旋转时,它并不是100%准确,但我认为那个夜晚是小提琴的环境.
这里的代码:
var $cog = $('#cog'),
$body = $(document.body),
bodyHeight = $body.height();
$(window).scroll(function () {
$cog.css({
'transform': 'rotate(' + ($body.scrollTop() / bodyHeight * 360) + 'deg)'
});
});
Run Code Online (Sandbox Code Playgroud)
这是一个简单的jQuery示例,检查修改后的JSFiddle:
CSS将为我处理旋转> 360和<0,所以我甚至不打扰这样做,并根据滚动的距离调整旋转值.我不担心试图考虑完整的旋转,以便它更好地流动速度和距离滚动.这个解决方案依赖于jQuery,但没有它就可以轻松完成.
$(function() {
var rotation = 0,
scrollLoc = $(document).scrollTop();
$(window).scroll(function() {
var newLoc = $(document).scrollTop();
var diff = scrollLoc - newLoc;
rotation += diff, scrollLoc = newLoc;
var rotationStr = "rotate(" + rotation + "deg)";
$(".gear").css({
"-webkit-transform": rotationStr,
"-moz-transform": rotationStr,
"transform": rotationStr
});
});
})
Run Code Online (Sandbox Code Playgroud)