8.1.24 |
2
nhận xét
|
lượt xem
Thủ thuật này yêu cầu phải kết hợp với bài viết thêm bộ đếm lượt xem bài viết cho blogspotBởi vì đánh giá này mình sẽ tạo ra dựa theo số lượng xem bài viết và tính theo công thức: (Lượt xem/số hàng chục gần nhất) + 4 để đảm bảo lúc nào rate cũng trên 4.00 và số lượng người đánh giá sẽ là Số người xem/3
Và xin nói thêm là cái này cũng là hàng "fake" nhé không phải rate thật tuy nhiên nhìn nó sẽ tự nhiên nhất bởi dựa theo số lượt người xem, số lượng xem càng nhiều thì hiển thị càng nhiều người đánh giá :D
Hướng dẫn
Sau khi áp dụng theo hướng dẫn thêm bộ đếm lượt xem bài viết cho blogspot thì các bạn thực hiện theo các bước bên dướiHTML
Đặt đoạn code bên dưới vào nơi muốn hiển thị đánh giá<div id="ratingDisplay"> <div class="stars-outer"> <div class="stars-inner"></div> </div> <span id="ratingValue"></span> / <span id="ratingCount"></span> rates </div>
CSS
Sử dụng CSS sau để hiển thị giao diện cho phần đánh giá.stars-outer { display: inline-block; position: relative; unicode-bidi: bidi-override; font-size: 1.25rem; color: #ccc; } .stars-inner { position: absolute; top: 0; left: 0; white-space: nowrap; overflow: hidden; color: #ff7a18; } .stars-outer::before, .stars-inner::before { content: "\2605\2605\2605\2605\2605"; font-family: "Arial", sans-serif; }
JS
Cuối cùng để hoạt động được chúng ta sử dụng đoạn Javascript bên dướifunction calculateRating() { var viewsText = document.getElementById("postviews").textContent; var views = convertKViewsToNumber(viewsText); if (isNaN(views)) { setTimeout(calculateRating, 100); return; } var nearestTen = Math.ceil(views / 10) * 10; var rating = ((views / nearestTen) + 4).toFixed(2); if (rating === "5.00") { rating = (5.00 - getRandomArbitrary(0.01, 0.05)).toFixed(2); } var rates = Math.floor(views / 3); var displayRates = formatRates(rates); document.getElementById("ratingValue").textContent = rating; document.getElementById("ratingCount").textContent = displayRates; updateStars(parseFloat(rating)); } function convertKViewsToNumber(viewsText) { var multiplier = 1; if(viewsText.toLowerCase().endsWith('k')) { multiplier = 1000; viewsText = viewsText.replace(/k/i, ''); } return parseFloat(viewsText) * multiplier; } function updateStars(rating) { const starsTotal = 5; const starPercentage = (rating / starsTotal) * 100; document.querySelector('.stars-inner').style.width = starPercentage + '%'; } function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } function formatRates(rates) { if (rates >= 1000) { return (rates / 1000).toFixed(1) + 'k'; } return rates.toString(); } calculateRating();
- rating = (5.00 - getRandomArbitrary(0.01, 0.05)).toFixed(2);: 0.01, 0.05 là giá trị để trừ random trong khoảng này nếu rate được tính ra là 5.00 nhìn cho tự nhiên
- var rates = Math.floor(views / 3);: Sửa 3 thành giá trị khác nếu muốn số lượng người nhận xét tăng hoặc giảm so với số lượt xem
Copy to clipboard
2
nhận xét
Mới nhất ⇅
Chèn hình ảnh: Chỉ cần dán link hình ảnh - Upload ảnh
Chèn code: [pre]Code đã mã hóa [/pre]
Chèn emoji: Nhấn tổ hợp phím “Windows + . (dấu chấm)”
Chèn link: Click để chèn link
ths for share
REPLY DELETEĐổi avatar với thêm favicon nhìn cho đẹp đi bro :D
REPLY DELETE