通过页面滚动显示动画
Showing animations through page scrolling
所以我一直在尝试遵循本教程 http://www.netmagazine.com/tutorials/getting-animations-trigger-right-time 并意识到这些效果仅适用于包含图像的元素。我想在不包含图像(即:文本块)但无法使其工作的元素上获得这种效果。有没有人知道如何实现这一目标?谢谢你们!
下面是脚本:
<script>
if (Modernizr.csstransitions) {
function preloadImages(imgs, callback) {
var cache = [],
imgsTotal = imgs.length,
imgsLoaded = 0;
$(imgs).each(function (i, img) {
var cacheImage = document.createElement('img');
cacheImage.onload = function () {
if (++imgsLoaded == imgsTotal) callback();
};
cacheImage.src = $(img).attr('src');
cache.push(cacheImage);
});
};
$.fn.trans = function () {
var t = arguments[0],
d = arguments[1] || '';
if (t) {
$.each(this, function (i, e) {
$(['-webkit-', '-moz-', '-o-', '-ms-', '']).each(function (i, p) {
$(e).css(p + 'transition' + d, t);
});
});
}
};
document.write('<link rel="stylesheet" href="animations.css" />');
$(function(){
//preload images contained within elements that need to animate
preloadImages($('.services img, .featured img'), function () {
$('.services, .featured').appear({
once: true,
forEachVisible: function (i, e) {
$(e).data('delay', i);
},
appear: function () {
var delay = 150,
stagger = 800,
sequential_delay = stagger * parseInt($(this).data('delay')) || 0;
$(this).children().each(function (i, e) {
$(e).trans(i * delay + sequential_delay + 'ms', '-delay');
});
$(this).removeClass('animationBegin');
}
});
});
});
}
</script>
你可以找到 处理视口 css3 动画的轻量级 jQuery 滚动脚本 看这里
我创建了一个演示来展示它是如何工作的,滚动小提琴,当元素在视口中时,您将看到动画。
在此处查看演示
相关文章:
- JS页面在后台加载时显示动画
- 先下载页面,然后显示/动画内容
- 如何在使用$http缓存时重新触发ng-if/ng显示动画
- 在单击位置显示动画
- Jquery幻灯片显示动画行为怪异(事件触发,队列中堆积)
- 在 requestAnimationFrame 中使用 clearRect 不会显示动画
- 每次使用 jQuery 单击按钮时显示动画
- 按顺序显示动画 SVG 元素
- 显示动画图像的最佳方式(HTML/CSS/JS)
- 标签中的 JavaScript 代码在显示动画完成后运行
- 当 ajax 请求速度时不显示动画.js
- 通过页面滚动显示动画
- 在隐藏/显示动画时展开/收缩容器
- 显示动画不设置动画
- 在表行上设置显示动画
- 如果选择JQuery幻灯片,则不显示动画
- 制作不透明度隐藏/显示动画
- jQuery UI removeClass没有显示动画
- JavaScript隐藏/显示动画
- jquery不会在第一个项目上显示动画