input的宫格输入和shift多选_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-21 08:54:40
원래의
1198명이 탐색했습니다.

input的宫格输入

在做项目的对外分享时,分享有两种:一种是公开的,一种是私密的。私密的需要提取码,需要提取码就需要输入框。正常的输入框是这样的:

不正常的输入框就是这样子的:

后面的这种方式在手机端比较常见的,譬如支付宝和微信支付的密码输入。

有两种实现方式,先说简单的。

简单的实现思路是设置一个等大的 input 框和 div ,然后通过设置 z-index ,将 input 置于 div 上面,同时将 input 框的 opacity 设置趋近于 0,所以 HTML 结构应该是类似酱紫的:

<input type="text" value='提取码' maxLength="6" autoComplete="off"/><div id='pwd'>    <span>宫格1</span>    <span>宫格2</span>    <span>宫格3</span>    <span>宫格4</span>    <span>宫格5</span>    <span>宫格6</span>    <span class='custom-cursor'></span></div>
로그인 후 복사

CSS :

input {  position: absolute;  z-index: 10;  top: 0;  left: 50%;  transform: translateX(-50%);  opacity: 0.01;  height: 34px;  width: 232px;  box-sizing: border-box; }#pwd{    position: absolute;    top: 0;    left: 50%;    height: 34px;    width: 232px;    overflow: hidden;    color: #0d9aff;    box-sizing: border-box;    transform: translateX(-50%);  }  .custom-cursor{     position: absolute;     top: 5px;     left: 2px;     width: 1px;     height: 22px;     border: 1px solid black;     animation:mymove .3s infinite; } @keyframes mymove {    0%{        opacity: 0;    }    100%{        opacity: 1;    }}
로그인 후 복사

因为 input 框是不可见的,所以要模拟一个光标,作为一个输入的提示。光标的偏移距离要根据输入自动去计算。

另一种实现方式比较复杂,不仅需要根据输入来计算 input 框自身的偏移距离,还需要计算所用字体的宽高,因为 input 框的偏移距离和所用的字体是相关的。部分在线编辑器就采用类似的方式来实现的,但取而代之的是 textarea 。

Shift多选

Shift 多选在文件管理器或资源管理器中是很常见的操作,OS X 和 Windows 对 shift 多选的实现方式也不尽相同。

在我看来,shift 多选的有两个比较难的点:一是怎么确定边界,二是怎么确定选择的方式。相对来说,后者比较容易实现。

确定边界的情况和操作比较复杂,如下图:

在我们自身的项目中,对 shift多选采取的是比较简单的实现方式,所以图示是针对我们自身的业务场景来实现的,不具遍普遍性,但可以提供参考的思路。

朋友分享了一份北京游的方案给我,在此,分享给你们:

链接: https://pan.sankuai.com/plink/m6C1r1Sf1BiE ,提取码:4E0BzJ

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿