- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在没有任何插件的情况下构建一个简单的重叠“视差”效果。我有这样的 html:
<section>
<h2>Example Text</h2>
</section>
<section>
<h2>Example Text</h2>
</section>
<section>
<h2>Example Text</h2>
</section>
<section>
<h2>Example Text</h2>
</section>
<section>
<h2>Example Text</h2>
</section>
每个部分的高度都是视口(viewport)的 100%。我在 $(window).scroll()
中使用了一个 each 循环。我需要为顶部的 transform: translateY()
属性设置动画,直到下一部分位于浏览器的顶部。这个百分比基本上需要基于浏览器顶部的百分比。我尝试了很多方法,包括获取 offset().top
和 height()
值,并将它们与 $(window).scrollTop 进行比较()
但我似乎无法解决。这是我试图实现的效果,尽管它使用了 jQuery 插件。
http://codepen.io/rocbear/pen/bdIaG
编辑我现在几乎已经解决了这个问题,但是我有一个小问题滚动回到顶部。 translate
属性不会一直回到 0%,而是在顶部留下一个空隙。
我的代码笔:http://codepen.io/mdmoore/pen/MwjoLZ
$(function(){
$('section').each(function() {
var off = $(this).offset().top
$(this).data('orig-offset', off);
});
$(window).scroll(function(){
var scrollTop = $(window).scrollTop();
$('section').each(function(){
var off = $(this).data('orig-offset');
var translate = (scrollTop - off) / $(window).height() * 100;
if (scrollTop >= off) {
$(this).css({transform: 'translateY(' + translate +'%)'});
}
});
});
});
最佳答案
这是一种方法。如果需要,请随意对其进行优化。
$(function(){
$('section').each(function() {
var off = $(this).offset().top
$(this).data('orig-offset', off);
});
$(window).scroll(function(){
var scrollTop = $(window).scrollTop();
$('section').each(function(){
var off = $(this).data('orig-offset');
if (scrollTop >= off) {
var translate = (scrollTop - off) / $(window).height() * 100;
console.log(translate);
$(this).css({transform: 'translateY(' + translate +'%)'});
}
});
});
});
html, body {
height: 100%;
margin: 0;
}
h2 {
margin: 0;
text-align: center;
}
section {
background: #000;
height: 100%;
width: 100%;
position: relative;
top: 0;
}
section:first-of-type {
background-color: coral;
}
section:nth-of-type(2) {
background-color: lightgreen;
}
section:nth-of-type(3) {
background-color: lightblue;
}
section:nth-of-type(4) {
background-color: #ffff6e;
}
section:nth-of-type(5) {
background-color: #3c3c3c;
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="top">
<h2>Some Text</h2>
</section>
<section>
<h2>Some Text</h2>
</section>
<section>
<h2>Some Text</h2>
</section>
<section>
<h2>Some Text</h2>
</section>
<section>
<h2>Some Text</h2>
</section>
关于javascript - jQuery Animate translateY 基于滚动百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378722/
我有一个像这样的侧面构建 blabla some content blabla 我必须在标题下对主要内容的某些部分进行动画处理, 所以我在主体和页脚周围放置了一个 div,并将其用作 a
我有一个关于转换的快速问题,更具体地说是关于翻译的问题。我有一个旋转了 90 度的 div,我想在 X 轴上平移它,但是我想平移它的长度与文本高度的长度一样多。我的意思是,我目前正在处理的 div 是
是否可以在按钮底部移动光标时无限期不触发动画? 这是它的样子 -- gif和 codepen .container { padding: 1rem; } .container .here {
我这里有一个 jsfiddle - http://jsfiddle.net/0dd4gzy4/ 我正在使用这种技术来垂直对齐内容 - http://zerosixthree.se/vertical-a
我正在尝试在用户关注输入时对元素应用效果。我读过我可以通过使用 css 选择器(+、~、>)在不使用 jQuery 的情况下实现这一点。好吧,问题是客户端使用 Contact From 7 来呈现大量
我在使用引导卡时遇到问题。我使用了 transform: translateY(-50%); 将元素平移到 y 轴,我已经将父 div 的高度设置为自动,但问题是在平移之后元素,我希望高度应该自动调整
我正在使用一个轻量级的 jQuery 插件调用 leanModal 该插件的代码包含在这个 jsfiddle 中: https://jsfiddle.net/meqtu354/2/ 所有插件所做的就是
为了更改滚动灵敏度/速度,我将 transfrom: translateY(x) 分配给元素,其中 x 是一个动态数字。该数字根据当前滚动位置而变化: @HostListener('document:
我想创建一个动画来在用户单击某个元素时显示某个部分。该部分在页面加载时保持隐藏状态 (translateY(-700px))。单击事件更改切换类 ._active 在 margin-bottom 属性
我正在尝试使用 CSS 将我网站的内容翻译成屏幕外的内容,并在加载文档时将其动画化。 但是在加载页面时,文档长度会垂直延伸到要翻译内容的底部。这似乎在页面上停留了一会儿后就消失了,但我显然想一起删除这
当您单击标题中的链接时,我尝试使用transformY 来制作元素向下滑动的动画。我遇到的问题是所显示的元素嵌套了几层深度,这就是我认为导致问题的原因 - 我需要元素从父元素后面滑落。设置 z-ind
这个问题在这里已经有了答案: Transform: translate(-50%, -50%) (2 个答案) How to apply multiple transforms in CSS? (
我决定为自己创建一个新的起始页,作为学习 flexbox 和其他一些东西的一种方式。现在我的问题是我有一个 div,其中几乎没有其他可滚动的 div。但我不想使用普通滚动,我想要一些东西,如果我用鼠标
我正在尝试制作不同的类以进行对齐。 我希望能够像 class="left bottom" 使用 transform:translate 属性那样组合它。 问题是该属性正在被彼此覆盖。 如果您查看我的
我在测试背景文本剪辑时遇到问题。我想将具有可变高度的 div 垂直居中。所以我使用了 TranslateY。问题是背景剪辑图像也会移动。 我在这里有一个小演示: http://jsfiddle.net
出于某种原因,我的垂直对齐代码模糊了 Chrome 和 Safari 中的部分但不是所有子元素。 造成它的原因是 translateY(-50%),如果我删除它,那么模糊就会消失,但垂直居中效果会丢失
我想创建一个我知道一定可行的 CSS 悬停效果,但我就是无法解决它,想知道是否有一些明亮的 Spark 能够为我指明正确的方向! See this image here showing what I
我需要在 CSS 转换后缩小间隙:translateY(-50%) 以便内容自然流动。 我尝试了其他方法,但无法将元素向上移动其自高度度的 50%。作为百分比的负边距基于窗口的高度,因此这似乎不是一个
我试图在没有任何插件的情况下构建一个简单的重叠“视差”效果。我有这样的 html: Example Text Example Text Example Text
有人可以帮助创建一个动画,图像开始时就像一扇门在左边打开,而 translation-origin-x 在图像的右侧,当你将鼠标悬停在它上面时 - 它像门一样关闭.我的东西不太好用,图像消失了,有人可
我是一名优秀的程序员,十分优秀!