JQuery Scroll with position:修复CSS
我有以下脚本。
$(function () { // document ready var contentTop = $('.share').offset().top; // returns number $(window).scroll(function () { // scroll event var wayPoint = $(window).scrollTop(); // returns number if (contentTop < wayPoint) { var shareWidth = $('.content').width(); $('.share-active').width(shareWidth); $('.share').replaceWith('
'); } else { $('.share-active').replaceWith(''); } }); });
演示 : http : //jsfiddle.net/franciscop/b39M4/3/
不知何故, share-active
div在滚动顶部到达share
div之前出现。 我不知道我错了什么。
此外 ,无论如何动画share-active
div的外观,以便用户被它吸引。
你能帮我找到问题所在吗?
我相信你的元素偏移太快了。 当document.ready
触发图像时,可能还没有完全加载。 因此,您可以在页面上提供特定高度值的图像,以便它们在实际加载之前占用所需的空间,或者您可以使用window.load
事件来获取偏移量。
最简单的修复可能会改变:
$(function () { // document ready
至:
$(window).on("load", function () { // window load
这是一个演示: http : //jsfiddle.net/b39M4/4/
这会产生副作用,即在整个页面加载之前,您的代码将无法工作。 所以另一种方法是在必要时更新contentTop
变量。 一旦在document.ready
,一旦在window.load
,可能每次加载一次图像。 这样可以使代码更快地初始化并更准确地反映网页布局的实际情况。
要为元素的外观设置动画,您可以为其初始opacity
为零,然后在将元素添加到DOM后,选择它并将其设置为可见性。
此外,你真的应该限制window.scroll
事件处理程序,因为有些浏览器只会锁定,因为有很多window.scroll
事件在使用滚动条时触发。