当div在视点中时,在div中加载图表饼

时间:2014-08-04 18:49:46

标签: javascript jquery

我正在使用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>

它不在视点中显示。

谢谢!

1 个答案:

答案 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;
    }
}