如果屏幕尺寸改變,如何改變圓圈的大?。?/h1>
1 回答

TA貢獻1828條經驗 獲得超4個贊
你的問題是你必須添加調整大小事件監聽器,并且true在動畫完成時使動畫無效,以便條件可以再次運行以調整圓圈大小,你會注意到,每當您調整頁面大小時,它都會重新動畫。
/**
?* index.js
?* - All our useful JS goes here, awesome!
?Maruf-Al Bashir Reza
?*/
function myFunction(x) {
??
? let size = 150;
? if (x.matches) {
? ? // If media query matches
? ? size = 80;
? }
? ? 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: percent / 100,
? ? ? ? ? ? ? thickness: 4,
? ? ? ? ? ? ? lincCape: "round",
? ? ? ? ? ? ? emptyFill: "#d4d4d4",
? ? ? ? ? ? ? fill: {
? ? ? ? ? ? ? ? color: "#1F88E9",
? ? ? ? ? ? ? },
? ? ? ? ? ? ? size: size,
? ? ? ? ? ? });
? ? ? ? ? $(this).data("animate", false);
? ? ? ? }
? ? ? });
? ? }
? ? // Show animated elements
? ? animateElements();
? ? $(window).scroll(animateElements);
}
var x = window.matchMedia("(max-width: 700px)");
myFunction(x);
$(window).on("resize", function (e) {
? var x = window.matchMedia("(max-width: 700px)");
? myFunction(x); // Call listener function at run time
});
/**
?* index.scss
?* - Add any styles you want here!
?*/
body {
? background: #f5f5f5;
}
.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;
}
<!DOCTYPE html>
<html>
<head>
? <!--? Meta? -->
? <meta charset="UTF-8" />
? <title>My New Pen!</title>
? <!--? Styles? -->
? <link rel="stylesheet" href="styles/index.processed.css">
</head>
<body>
? <h1 style="margin:auto;text-align:center;color:skyblue;">Circle Progressbar When Scroll</h1>
? <div style="width:100%;height:800px;">↓ Scroll down ↓</div>
? <h3>Title (Placeholder)</h3>
? <div class="progressbar" data-animate="false">
? ? <div class="circle" data-percent="100">
? ? ? <div></div>
? ? ? <p>Testing</p>
? ? </div>
? </div>
? <div class="progressbar" data-animate="false">
? ? <div class="circle" data-percent="30.5">
? ? ? <div></div>
? ? ? <p>Testing</p>
? ? </div>
? </div>
? <div class="progressbar" data-animate="false">
? ? <div class="circle" data-percent="77">
? ? ? <div></div>
? ? ? <p>Testing</p>
? ? </div>
? </div>
? <div class="progressbar" data-animate="false">
? ? <div class="circle" data-percent="49">
? ? ? <div></div>
? ? ? <p>Testing</p>
? ? </div>
? </div>
? <div style="width:100%;height:500px;"></div>
? <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
? <script src="https://rawgit.com/kottenator/jquery-circle-progress/1.2.1/dist/circle-progress.js"></script>
? <script src="scripts/index.js"></script>
</body>
</html>
- 1 回答
- 0 關注
- 150 瀏覽
添加回答
舉報