当我向下滚动时,我有一个标志在一个点上旋转,直到它在我的console.log上达到600,然后它开始滑到right.The,问题是当它达到600时,而不是标志开始滑动到600,如果有意义的话,它会传送到600。
var $win = $(window);
var $jet = $('#jet');
$win.on('scroll',function(){
var top = $win.scrollTop();
if ($(window).scrollTop() < 600) {
console.log($win.scrollTop())
$jet.css('transform', 'rotate(' + top +'deg)');
}
if ($(window).scrollTop() > 600) {console.log($win.scrollTop())
$jet.css('transform', 'translateX(' + top +'px)');}
});发布于 2018-02-26 13:40:36
在您的最后一条if语句中,您只是将即时css样式设置为kick-in,而不是动画到该结束状态。
在最后一条if语句中,而不是:
$jet.css('transform', 'translateX(' + top + 'px');尝试:
$jet.animate({
transform: 'translateX(' + top + 'px)'
}, 5000, "linear", function() {
// any javascript to apply immediately as animation completes
});这将在5秒内将对象水平移动“顶部”像素。
请参阅API documentation page for more information about the jQuery Animate function。
https://stackoverflow.com/questions/48981855
复制相似问题