【发布时间】:2013-12-09 12:35:31
【问题描述】:
我已经搜索过了,但没有找到太多关于它的信息。可以使用 :hover 效果创建 CSS 过渡,例如:
div { color: red;}
div:hover {color: blue;}
您只需将过渡添加到此 CSS 中。但我希望启动动画的触发器是当 DIV 出现在屏幕上时。
我怎样才能做到这一点?
【问题讨论】:
标签: javascript jquery html css
我已经搜索过了,但没有找到太多关于它的信息。可以使用 :hover 效果创建 CSS 过渡,例如:
div { color: red;}
div:hover {color: blue;}
您只需将过渡添加到此 CSS 中。但我希望启动动画的触发器是当 DIV 出现在屏幕上时。
我怎样才能做到这一点?
【问题讨论】:
标签: javascript jquery html css
执行此操作的一种方法是使用一个函数来检查当您滚动页面时相关元素是否在视图中。
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
$(window).scroll(function(){
if (isScrolledIntoView('.class') === true) {
$('.class').addClass('in-view')
}
});
代码来自: Check if element is visible after scrolling
如果“.class”在向下滚动后可见,则此代码将添加一个“in-view”类。基于这个类,你可以添加你的 css 过渡,例如:
.class {
opacity:0;
transition:all 0.5s;
}
.class.in-view {
opacity:1;
}
示例:http://jsfiddle.net/z3xTU/(向下滚动)
【讨论】:
您不能仅仅基于 CSS 来实现这一点。考虑通过 JQuery 在文档加载(或您想要的任何事件)上添加动画。
例如:
$(document).ready(function() {
$('.divSelectorGoesHere').animate({
// Your css "property":"value"
});
}
【讨论】: