如何判断一个HTML元素是否正在屏幕上呈现?
How might I tell if an HTML element is being rendered on the screen?
我想一个元素做一个CSS3动画一旦页面向下滚动到足够的可见,我想知道是否有任何方法来完成这一点。任何涉及JavaScript或CSS的东西都可以工作。我已经做了很多谷歌搜索和Stackoverflow搜索,不能找到确切的我需要的
根据布局的复杂程度,它可以像查找滚动位置、窗口高度和元素在页面上的位置一样简单。
function scrollEvent() {
var el = document.getElementsByTagName('a')[0];
var body = document.getElementsByTagName('body')[0];
var posY = (window.innerHeight + body.scrollTop) - el.offsetTop;
var onScreen = (posY > 0 && posY < window.innerHeight) ? true : false;
}
window.onscroll = scrollEvent;
如果你担心水平定位,也可以使用同样的方法。
这取决于你具体想做什么。我会查看这些资源:
http://daneden.github.io/animate.css/http://www.w3schools.com/css/css3_animations.asp http://css-tricks.com/almanac/properties/a/animation/把你的CSS3动画样式放到一个类中,但是不要把它分配给你的元素,直到它完全滚动到视图中。
假设您的元素有sprite
的id
,这应该让您继续:
<style>
.animate {
//CSS3 animation style
}
</style>
window.onscroll= function() {
var sprite = document.getElementById('sprite');
if(sprite.getBoundingClientRect().top>=0 && sprite.getBoundingClientRect().bottom<=window.innerHeight) {
sprite.className= 'animate';
}
}
相关文章:
- 如何知道元素在屏幕上是否可见.如果没有,请滚动页面
- 检查屏幕上是否没有移动或从键盘单击
- 确定iPhone用户是否在野生动物园屏幕上
- 在Chrome扩展程序中,是否可以截屏并在弹出窗口中显示屏幕
- Javascript,检查元素是否已离开屏幕
- 检测用户是否点击了添加到主屏幕
- Css-是否可以在调整屏幕大小时使元素移动,以使其适合屏幕
- 检测网络应用程序是否已在安卓系统的主屏幕上添加书签
- 在angular 1中,我如何检测angular是否受支持,并在屏幕上显示消息's不受支持
- 检测下拉导航是否会离开屏幕并重新定位
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 检测网站(不是webapp!)是否已添加到主屏幕
- 是否可以从javascript打印Flash动画的屏幕
- 除了屏幕之外,CSS 值是否有任何方法响应窗口宽度@media
- 余烬是否需要为每个屏幕生成路由
- 如何检查该元素是否在网页屏幕上,当有人滚动到该元素时,我也想要一个触发器
- 有没有办法使用 JS 来检查 IE 智能屏幕是否打开
- 如何在导航之前判断元素是否在屏幕上
- 是否可以在服务器端截取渲染的 DOM 的屏幕截图
- Jquery Resize:如何检查屏幕是否已经调整大小在任何点