【问题标题】:circlebar.js:11 Uncaught TypeError: $(...).find(...).circle is not a functioncirclebar.js:11 未捕获类型错误:$(...).find(...).circle 不是函数
【发布时间】:2017-02-12 18:57:21
【问题描述】:

我正在尝试使用 jQuery 构建一个圆形栏,但控制台中显示一个错误,无法解决。谷歌搜索了一下,但什么也没发生。有谁知道我如何解决这个错误?代码不能被sn-p运行是对的,正因为如此。所以请不要对此投反对票,这是这个问题的一部分。

$(document).ready(function ($) {
    function animateElements() {
        $('.progressbar').each(function () {
            var elementPos = $(this).offset().top;
            var topOfWindow = $(window).scrollTop();
            var percent = $(this).find('.circle').attr('data-percent');
            var percentage = parseInt(percent, 10) / parseInt(100, 10);
            var animate = $(this).data('animate');
            if (elementPos < topOfWindow + $(window).height() - 30 && !animate) {
                $(this).data('animate', true);
                $(this).find('.circle').circleProgress({
                    startAngle: -Math.PI / 2,
                    value: percentage,
                    thickness: 8,
                    fill: {
                        color: '#1B58B8'
                    }
                }).on('circle-animation-progress', function (event, progress, stepValue) {
                    $(this).find('div').text(String(stepValue.toFixed(2)).substr(2) + '%');
                }).stop();
            }
        });
    }

    // Show animated elements
    animateElements();
    $(window).scroll(animateElements);
});
.progressbar {
    display: inline-block;
    width: 100px;
    margin: 25px;
}
.circle {
    width: 100%;
    margin: 0 auto;
    margin-top: 10px;
    display: inline-block;
    position: relative;
    text-align: center;
}
.circle canvas {
    vertical-align: middle;
}
.circle div {
    position: absolute;
    top: 30px;
    left: 0;
    width: 100%;
    text-align: center;
    line-height: 40px;
    font-size: 20px;
}
.circle strong i {
    font-style: normal;
    font-size: 0.6em;
    font-weight: normal;
}
.circle span {
    display: block;
    color: #aaa;
    margin-top: 12px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div style="width:100%;height:500px;"></div>

<h3>Sed scelerisque</h3>

<div class="progressbar" data-animate="false">
    <div class="circle" data-percent="98">
        <div></div>
        <p>Quisque's</p>
    </div>
</div>
<div class="progressbar" data-animate="false">
    <div class="circle" data-percent="30">
        <div></div>
        <p>Maecenas</p>
    </div>
</div>
<div class="progressbar" data-animate="false">
    <div class="circle" data-percent="77">
        <div></div>
        <p>Pellentesque</p>
    </div>
</div>
<div class="progressbar" data-animate="false">
    <div class="circle" data-percent="49">
        <div></div>
        <p>Etiam sodales</p>
    </div>
</div>
<div style="width:100%;height:500px;"></div>

【问题讨论】:

    标签: jquery html css css-shapes


    【解决方案1】:

    看来您只需要通过您的 html 包含 jquery 和循环进度 js 文件 - 即

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.rawgit.com/kottenator/jquery-circle-progress/1.2.0/dist/circle-progress.js"></script>
    

    请看下面的例子:

    $(document).ready(function ($) {
        function animateElements() {
            $('.progressbar').each(function () {
                var elementPos = $(this).offset().top;
                var topOfWindow = $(window).scrollTop();
                var percent = $(this).find('.circle').attr('data-percent');
                var percentage = parseInt(percent, 10) / parseInt(100, 10);
                var animate = $(this).data('animate');
                if (elementPos < topOfWindow + $(window).height() - 30 && !animate) {
                    $(this).data('animate', true);
                    $(this).find('.circle').circleProgress({
                        startAngle: -Math.PI / 2,
                        value: percentage,
                        thickness: 8,
                        fill: {
                            color: '#1B58B8'
                        }
                    }).on('circle-animation-progress', function (event, progress, stepValue) {
                        $(this).find('div').text(String(stepValue.toFixed(2)).substr(2) + '%');
                    }).stop();
                }
            });
        }
    
        // Show animated elements
        animateElements();
        $(window).scroll(animateElements);
    });
    .progressbar {
        display: inline-block;
        width: 100px;
        margin: 25px;
    }
    .circle {
        width: 100%;
        margin: 0 auto;
        margin-top: 10px;
        display: inline-block;
        position: relative;
        text-align: center;
    }
    .circle canvas {
        vertical-align: middle;
    }
    .circle div {
        position: absolute;
        top: 30px;
        left: 0;
        width: 100%;
        text-align: center;
        line-height: 40px;
        font-size: 20px;
    }
    .circle strong i {
        font-style: normal;
        font-size: 0.6em;
        font-weight: normal;
    }
    .circle span {
        display: block;
        color: #aaa;
        margin-top: 12px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.rawgit.com/kottenator/jquery-circle-progress/1.2.0/dist/circle-progress.js"></script>
    <div style="width:100%;height:500px;"></div>
    
    <h3>Sed scelerisque</h3>
    
    <div class="progressbar" data-animate="false">
        <div class="circle" data-percent="98">
            <div></div>
            <p>Quisque's</p>
        </div>
    </div>
    <div class="progressbar" data-animate="false">
        <div class="circle" data-percent="30">
            <div></div>
            <p>Maecenas</p>
        </div>
    </div>
    <div class="progressbar" data-animate="false">
        <div class="circle" data-percent="77">
            <div></div>
            <p>Pellentesque</p>
        </div>
    </div>
    <div class="progressbar" data-animate="false">
        <div class="circle" data-percent="49">
            <div></div>
            <p>Etiam sodales</p>
        </div>
    </div>
    <div style="width:100%;height:500px;"></div>

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 1970-01-01
      • 2018-09-19
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      相关资源
      最近更新 更多