Today I will share with you a good-looking counter implemented with native JS. The effect is as follows: The following is the code implementation, you are welcome to copy, paste and collect it. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Native JS implements a good-looking counter</title> <style> * { font-family: 'Microsoft YaHei', sans-serif; box-sizing: border-box; margin: 0; padding: 0; } body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #000d0f; } .container { position: relative; width: 80px; height: 50px; border-radius: 40px; border: 2px solid rgba(255, 255, 255, 0.2); transition: 0.5s; } .container:hover { width: 120px; border: 2px solid rgba(255, 255, 255, 1); } .container .next { position: absolute; top: 50%; right: 30px; display: block; width: 12px; height: 12px; border-top: 2px solid #fff; border-left: 2px solid #fff; z-index: 1; transform: translateY(-50%)rotate(135deg); cursor: pointer; transition: 0.5s; opacity: 0; } .container:hover .next { opacity: 1; right: 20px; } .container .prev { position: absolute; top: 50%; left: 30px; display: block; width: 12px; height: 12px; border-top: 2px solid #fff; border-left: 2px solid #fff; z-index: 1; transform: translateY(-50%)rotate(315deg); cursor: pointer; transition: 0.5s; opacity: 0; } .container:hover .prev { opacity: 1; left: 20px; } #box span { position: absolute; display: none; width: 100%; height: 100%; text-align: center; line-height: 46px; color: #00deff; font-size: 24px; font-weight: 700; user-select: none; } #box span:nth-child(1) { display: initial; } </style> </head> <body> <div class="container"> <div class="next" onclick="nextNum()"></div> <div class="prev" onclick="prevNum()"></div> <div id="box"> <span>0</span> </div> </div> <script> var numbers = document.getElementById('box') for (let i = 0; i < 100; i++) { let span = document.createElement('span') span.textContent = i numbers.appendChild(span) } let num = numbers.getElementsByTagName('span') let index = 0 function nextNum() { num[index].style.display = 'none' index = (index + 1) % num.length num[index].style.display = 'initial' } function prevNum() { num[index].style.display = 'none' index = (index - 1 + num.length) % num.length num[index].style.display = 'initial' } </script> </body> </html> The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Summary of commonly used SQL in MySQL operation tables
>>: Centos7.3 automatically starts or executes specified commands when booting
Phenomenon: Run an image, for example, ubuntu14.0...
Table of contents 1. Introduction 2. filter() 3. ...
Official Website https://cli.vuejs.org/en/guide/ ...
This article example shares the specific code of ...
1. Docker installation and startup yum install ep...
Preface The default database file of the MySQL da...
This article describes how to install mysql5.7.16...
The <link> tag defines the relationship bet...
Implemented according to the online tutorial. zab...
Let's take a look at the process of installin...
This is my first time writing a blog. I have been...
The original code is this: <div class='con...
WebRTC, which stands for Web Real-Time Communicat...
1. Prerequisites JDK has been installed echo $PAT...
MySQL official website: https://www.mysql.com/dow...