我的网站是浏览器窗口高度的6倍。我希望有一个固定定位的图像从浏览器窗口的顶部移动到底部,当我从我的网站顶部滚动到底部。
我给你一些示例代码,但我完全坚持这一点,甚至不知道从哪里开始。
我只是在寻找一个非常简单的例子。我限于html5,css和jquery。
答案 0 :(得分:2)
您需要知道文档的大小var documentHeight = $(document).height()
,屏幕的大小var screenHeight = $(window).height()
以及用户滚动的距离var scrollAmount = $(window).scrollTop
。
计算可以滚动的最大金额var maxScrollAmount = documentHeight - windowHeight
并使用它来确定页面的哪个部分已经被看到(0到1之间的数字)var amountSeen = scrollAmount / maxScrollAmount
。如果您将其乘以窗口大小,您就会知道图片top
的距离var top = amountSeen * windowHeight
我已经开始使用您可以扩展的小型jQuery插件,请参阅http://codepen.io/ckuijjer/pen/lGqAs。它不支持调整文档的大小,并且它没有经过优化,但它是一个开始。
答案 1 :(得分:1)
无论您要移动什么,您需要的主要内容是浏览器窗口的滚动位置百分比。这需要一些计算,因为滚动位置仅由浏览器提供为屏幕顶部上方的像素数:
// Vanilla Javascript
var scrollPercent = document.body.scrollTop / (document.body.scrollHeight - window.innerHeight);
// JQuery
var scrollPercent = $(window).scrollTop() / ($(document.body).height() - $(window).height());
以百分比形式显示滚动位置后,您可以使用它来设置固定元素的top
属性,以将其放置在窗口中:scrollPercent * window.height
。
答案 2 :(得分:1)
检查一下:
http://codepen.io/anon/pen/zolLe
$( ".scroll__inner" ).click( function(){
console.log("this1");
window.scrollBy(0,600);
});
在此我添加了一个关于点击事件的向下滚动,其他所有与@ckuijjer回答相同。我使用了按功能滚动向下滚动。您也可以通过给予scrollby高度直接滚动到底部。
答案 3 :(得分:0)
如果你想在整个窗口上显示所有滚动位置的图像,在你的图像标签中放置这种风格:
<img id="img1" src="" style="position:fixed; top=0; left=o; width:100%; height:100%; z-index:-10;" />
$(function(){
$("#img1").css({"height": $(document.height()) + "px", "width": $(document.width()) + "px"});
});