我试图让一个div相对于元素的滚动百分比设置0%-100%的动画。
现在我已经设置了一些变量,但是我在试图计算一个百分比的高度时遇到了麻烦。
我们可以很容易地设置起始宽度,也可以很容易地检测滚动,我们可以得到触发动画的元素的高度,我只是不能得到它的百分比。
如果我能找出如何返回滚动的conheight百分比,那么这应该很容易。
$(window).scroll(function() {
// calculate the percentage the user has scrolled down the page
var scrollPercent = ($(window).scrollTop() / $(document).height()) * 100;
$('.bar-long').css('width', scrollPercent +"%" );
});
这是一个JSFIDLE,http://jsfiddle.net/SnJXQ/
这是基于body元素的滚动百分比设置条形图长度的动画。
从0%到100%设置动画(好吧,其实不是,但我不知道为什么)。
我想做的是得到. postdiv的滚动百分比,然后动画长条相对于它。滚动10%的. post,. bar-long是10%的宽度,滚动70%的. post,. bar-long是70%的宽度。
假设您希望跟踪在页面的某个IFrame中找到的某个文档的滚动。
object.addEventListener("scroll", documentEventListener, false);
那么您的事件侦听器应该如下所示:
function documentEventListener(){
var currentDocument = this;
var docsWindow = $(currentDocument.defaultView); // This is the window holding the document
var docsWindowHeight = docsWindow.height(); // The viewport of the wrapper window
var scrollTop = $(currentDocument).scrollTop(); // How much we scrolled already, in the viewport
var docHeight = $(currentDocument).height(); // This is the full document height.
var howMuchMoreWeCanScrollDown = docHeight - (docsWindowHeight + scrollTop);
var percentViewed = 100.0 * (1 - howMuchMoreWeCanScrollDown / docHeight);
console.log("More to scroll: "+howMuchMoreWeCanScrollDown+"pixels. Percent Viewed: "+percentViewed+"%");
}
好的,我明白你想要达到的目标了。。。。事实上,我只是做了一些非常相似的事情。我发现的大多数解决方案也只适用于具有窗口或文档属性的整版示例。相反,我需要在一个特定的div中使用它,在我的例子中,它实际上用于更新另一个div的水平位置。
首先,您需要将滚动事件附加到您的$('. post')
接下来,$('.content')的高度将等于您的实际滚动高度
最后,应用百分比公式:(Y/(scrollHeight-postHeight))*100=scrollPercent
因此,您的代码应该如下所示,而不是使用文档或窗口属性:
$('.post').scroll(function() {
var currY = $(this).scrollTop();
var postHeight = $(this).height();
var scrollHeight = $('.content').height();
var scrollPercent = (currY / (scrollHeight - postHeight)) * 100;
});
你可以在这里找到小提琴:JS小提琴为Div滚动百分比
我实现此功能的当前项目位于此处:垂直滚动驱动水平位置
我希望这能解决你的问题:)
演示
您的问题与如何在JavaScript中获取HTML元素的水平滚动百分比相同?,但是垂直的。
然后,要获得垂直滚动的百分比,请使用
/* JS */ var scrollPercentage = 100 * containeR.scrollTop / (containeR.scrollHeight-containeR.clientHeight);
/*jQuery*/ var scrollPercent = 100 * $(containeR).scrollTop() / ($(containeD).height() - $(containeR).height());
在您的例子中,containeR=window;包含=文档
:
var scrollPercent = 100 * $(window).scrollTop() / ($(document).height() - $(window).height());
问题内容: 我有这个元素: 然后,我还有其他一些元素,例如其他文本输入,文本区域等。 当用户点击带,页面应该滚动到页面的最后一个元素与一个漂亮的动画。它应该是滚动到底部而不是顶部。 页面的最后一项是带有的按钮: 动画不应太快并且应该流畅。 我正在运行最新的jQuery版本。我更喜欢不安装任何插件,而是使用默认的jQuery功能来实现此目的。 问题答案: 假设您有一个ID为的按钮,请尝试以下示例:
我需要获得一个DOM元素的XPath来持久化它,这样我就可以查找该元素。 我已经尝试了这个答案的方法,但是当我用jQuery创建的对象调用该方法时... ...我得到这个错误: 未捕获的TypeError:无法读取未定义(…)的属性“子节点” 我尝试将替换为,将替换为,将替换为,但我收到未定义为函数结果的... 那么,您是否有一个与类似的函数可以使用jQuery呢?
问题内容: jQuery中是否有一种方法可以循环或将分配给元素的所有类分配给数组? 例如 我将在上面的“ dolor_spec”中寻找“特殊”类。我知道我可以使用hasClass(),但是实际的类名有时不一定是已知的。 问题答案: 您可以用来获取一组类名。 然后,您可以迭代并找到所需的那个。 jQuery并没有真正帮助您…
问题内容: 我试图遍历一个元素并获取该元素的所有属性以输出它们,例如,一个标签可能具有3个或更多属性,我不知道,我需要获取这些属性的名称和值。我在考虑以下方面: 谁能告诉我这是否可能,如果可以,正确的语法是什么? 问题答案: 该属性包含它们全部: 您还可以做的是扩展,以便可以像获取所有属性的普通对象一样调用它: 用法:
问题内容: 我正在尝试使用jquery和Selenium IDe 1.0.8获取元素。 在日志中我得到 当我把这个命令放到萤火虫中时,我得到了这个元素:/ 为什么不起作用? 编辑:例如,您也可以给我代码如何在stackoverflow主页上获取带有JAVA标签的第一个对象的ID。 标签: 和示例结果来自: 是: 问题答案: 根据其他帖子,我尝试了以下操作,并且有效。 将以下代码添加到user-ex
问题内容: 使用jQuery,如何获得具有插入符号(光标)焦点的输入元素? 换句话说,如何确定输入是否具有插入符号的焦点? 问题答案: 您应该使用哪一个?引用jQuery文档: 与其他伪类选择器(以“:”开头的选择器)一样,建议在:focus之前加上标签名称或其他选择器;否则,暗示通用选择器(“ *”)。换句话说,裸露等于。如果您正在寻找当前关注的元素,则$(document.activeElem