v0.30.81
feat (user) : feature to input login pin
This commit is contained in:
parent
8d17c25f97
commit
8ed28b4c3b
@ -0,0 +1,112 @@
|
|||||||
|
const pinLogin = document.createElement('template');
|
||||||
|
pinLogin.innerHTML = `
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
*{
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pin-container{
|
||||||
|
display:flex;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-style{
|
||||||
|
width:3.5rem;
|
||||||
|
height:4.5rem;
|
||||||
|
border:none;
|
||||||
|
background-color: #d5d5d5;
|
||||||
|
border-radius:8px;
|
||||||
|
outline:none;
|
||||||
|
font-size:70px;
|
||||||
|
text-align: center;
|
||||||
|
color:#696969;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='password'].input-pin{
|
||||||
|
background-color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="password"]:focus {
|
||||||
|
border: 3px solid #0000ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div class="pin-container"></div>
|
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
customElements.define('login-pin',
|
||||||
|
|
||||||
|
class extends HTMLElement {
|
||||||
|
constructor() {
|
||||||
|
super()
|
||||||
|
this.attachShadow({
|
||||||
|
mode: 'open'
|
||||||
|
}).append(pinLogin.content.cloneNode(true))
|
||||||
|
|
||||||
|
this.pin_block = [];
|
||||||
|
this.container = this.shadowRoot.querySelector('.pin-container');
|
||||||
|
}
|
||||||
|
|
||||||
|
renderBlocks(){
|
||||||
|
const frag = document.createDocumentFragment();
|
||||||
|
|
||||||
|
for(let i=0 ; i<4;i++){
|
||||||
|
|
||||||
|
const password = document.createElement('input');
|
||||||
|
password.classList.add('input-style');
|
||||||
|
password.setAttribute('type', "password");
|
||||||
|
password.setAttribute('maxlength', "1");
|
||||||
|
|
||||||
|
this.pin_block.push(password);
|
||||||
|
|
||||||
|
frag.append(password);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.container.append(frag);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
connectedCallback() {
|
||||||
|
this.renderBlocks();
|
||||||
|
this.pin_block[0].focus();
|
||||||
|
let pin_block = this.pin_block;
|
||||||
|
let count =0;
|
||||||
|
this.pin_block.forEach((input) =>{
|
||||||
|
input.addEventListener('keydown' , function(e){
|
||||||
|
if(e.keyCode >=48 && e.keyCode<= 57){
|
||||||
|
if(count>4){
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
pin_block[count].classList.add('input-pin');
|
||||||
|
pin_block[count++].focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(e.key === "Backspace"){
|
||||||
|
if(count <= 0){
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
count--;
|
||||||
|
pin_block[count].classList.remove('input-pin');
|
||||||
|
pin_block[count].focus();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user