我正在使用easypiechart plugin,我希望它只在用户向下滚动到.skills div时加载它。我使用的是viewport plugin。
我试过这样的事:
<script src="js/viewport.js"></script>
<script>
(function(){
if ($(".skills:in-viewport")){
jQuery.getScript("js/jquery.easypiechart.min.js").done(function() {
$('.chart').easyPieChart({
easing: 'easeOutBounce',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
});
};
});
</script>
它不在视点中显示。
谢谢!
答案 0 :(得分:1)
您可以在没有视口插件的情况下执行此操作。您可以使用$(window).height()
,当用户向下滚动时,检查您想要图表的div
的距离是否小于滚动距离+ $(window).height()
,如果是,则绘制它。
以下是代码:
var el = document.getElementById('your-div'),
topDistance = el.getBoundingClientRect().top,
drawn = false;
function drawPieChart() {
jQuery.getScript("js/jquery.easypiechart.min.js").done(function() {
$('.chart').easyPieChart({
easing: 'easeOutBounce',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
});
}
function handleScroll() {
if (document.body.scrollTop + $(window).height() > topDistance) {
drawn || drawPieChart();
drawn = true;
}
}