Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用站点上的滚动并使用滚动调整图像大小_Javascript_Jquery - Fatal编程技术网

Javascript 禁用站点上的滚动并使用滚动调整图像大小

Javascript 禁用站点上的滚动并使用滚动调整图像大小,javascript,jquery,Javascript,Jquery,在我的网站上,我有一个100%宽度的图像,当用户向下滚动时,我会调整图像的大小,直到达到某一点 当图像在滚动上调整大小时,我不希望站点的其余部分滚动。当达到正确的图像大小时,应启用滚动,以便用户可以自由滚动 我记得苹果曾经在iMac产品网站上使用过这种效果。也许有一个图书馆或者更好的方法来实现这一点 我曾尝试在页面容器div上使用绝对位置,然后也调整了scroll上的位置$('.profile.absolute').css('top',scrollY+'px')原则上它可以工作,但在移动设备上它

在我的网站上,我有一个100%宽度的图像,当用户向下滚动时,我会调整图像的大小,直到达到某一点

当图像在滚动上调整大小时,我不希望站点的其余部分滚动。当达到正确的图像大小时,应启用滚动,以便用户可以自由滚动

我记得苹果曾经在iMac产品网站上使用过这种效果。也许有一个图书馆或者更好的方法来实现这一点

我曾尝试在页面容器div上使用绝对位置,然后也调整了scroll上的位置<代码>$('.profile.absolute').css('top',scrollY+'px')原则上它可以工作,但在移动设备上它会上下跳动几个像素,看起来不太好

如何使页面“冻结”,直到图像具有正确的大小

.photo_main_float {
    position: fixed;
    width:calc(100vw - 30px);
}

window.onscroll=function() {
    var scrollY=window.scrollY;
    var scrollR=115;

    if (scrollY > 0 && scrollY < scrollR && $('.photo_main').hasClass('photo_main_float')) {
        var scrollSoFar = scrollY / scrollR * 100;        
        var img_size = 100-scrollSoFar;
        $('.photo_main').width('calc('+img_size+'% - 30px)');
    }
    if (scrollY > 0 && scrollY > scrollR) {
        $('.photo_main').removeClass('photo_main_float');
    }
};
.photo\u main\u float{
位置:固定;
宽度:计算(100vw-30px);
}
window.onscroll=function(){
var scrollY=window.scrollY;
var-scrollR=115;
if(scrollY>0&&scrollY0&&scrollY>scroller){
$('.photo_main').removeClass('photo_main_float');
}
};

请记住,明确要求提供图书馆之类的服务是解决问题的好方法。无论如何,它是一个流行的动画库。您可以使用GreenSock的插件将动画绑定到页面滚动。至于让页面冻结,你不需要。相反,您可以在页面中添加一个间隙,并随着滚动移动元素(通过更新其位置或使用
位置:fixed
),使其看起来保持在原来的位置。将其固定并插入一个临时div,其高度可激活滚动。谢谢。谢谢你的链接,我会查出来的。