騷氣的input

看到這個(gè)標(biāo)題,想必大家都有興趣的齐媒,今天給大家分享一個(gè)不正經(jīng)的輸入框蒲每。廢話少說,先上效果

代碼奉上:

騷氣的input

* {

margin: 0;

padding: 0;

}

body {

font-size: 30px;

}

canvas {

position: absolute;

top: 20px;

}

div {

width: 350px;

margin: 100px auto;

position: relative;

}

input {

width: 100%;

height: 30px;

position: absolute;

background: transparent;

border: none;

border-bottom: 2px solid #a0a0a0;

outline: none;

font-size: 30px;

}

.placeholder {

display: inline-block;

position: absolute;

top: -10px;

transition: .4s;

color: #ddd;

}

請輸入內(nèi)容...

var input = document.querySelector('input');

var span = document.querySelector('.placeholder');

input.addEventListener('focus', function () {

if (input.value.length <= 0) {

span.style.transform = 'scale(.8) translate(-20px,-30px)';

animate(false);

}

});

input.addEventListener('blur', function () {

if (input.value.length <= 0) {

span.style.transform = 'none';

animate(true);

}

});

function animate(isBack) {

var canvas = document.getElementById("canvas");

var context = canvas.getContext("2d");

if (!this.border) {

this.border = 1;

input.style.borderBottom = 'none';

}

var width = canvas.width,

height = canvas.height;

var m = Math;

var scale = 50;

var ang = 0,

value = height * .6;

var deg = m.ceil(width / m.PI * 4),

k = isBack ? -12 : 12;

input.style.borderBottom = 'none';

var t = setInterval(function () {

ang += k;

context.clearRect(0, 0, width, height);

context.beginPath();

for (var i = 0; i < deg; i++) {

context.lineTo(m.PI * i / 180 * scale, .3 * m.sin(m.PI * (i - ang) / 180) * scale / 2 + value);

}

context.stroke();

if (m.abs(ang) > width) {//動(dòng)畫完成喻括。重新繪制線條邀杏。

context.clearRect(0, 0, canvas.width, canvas.height);

context.beginPath();

context.moveTo(0, value);

context.lineTo(width, value);

context.strokeStyle = '#000';

context.stroke();

clearInterval(t);

}

}, 20);

}

不得不說,html5 canvas太棒了唬血,給了前端充分的想像望蜡,結(jié)合數(shù)學(xué),給我們意想不到的驚喜拷恨。 運(yùn)用canvas最基礎(chǔ)的API,簡單的三角函數(shù)脖律,可視化數(shù)學(xué)之美。

下面進(jìn)行技術(shù)總結(jié):

1腕侄、通過正弦曲線生成N個(gè)點(diǎn)小泉,然后通過context.lintTo把所有的點(diǎn)連接起來芦疏,形成一個(gè)正弦曲線,我們都知道微姊,正弦曲線表達(dá)式為:y = sin(x); 主的取值為[-1,1]酸茴,如果我們在sin前面*一個(gè)系數(shù),比如:y=4*sin(x);則表示增大波峰兢交。即上下擺動(dòng)的幅度增加了4倍薪捍。

2、canavs動(dòng)畫的基本原理:畫了擦配喳,擦了再畫酪穿。

3、不要給canvas設(shè)置width,height的樣式界逛,要用JS 動(dòng)態(tài)設(shè)置昆稿,用CSS設(shè)置的在繪制一些基本圖形的時(shí)候可能會變形纺座,大家不妨可以試試息拜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市净响,隨后出現(xiàn)的幾起案子少欺,更是在濱河造成了極大的恐慌,老刑警劉巖馋贤,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赞别,死亡現(xiàn)場離奇詭異,居然都是意外死亡配乓,警方通過查閱死者的電腦和手機(jī)仿滔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犹芹,“玉大人崎页,你說我怎么就攤上這事⊙。” “怎么了飒焦?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屿笼。 經(jīng)常有香客問我牺荠,道長,這世上最難降的妖魔是什么驴一? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任休雌,我火速辦了婚禮,結(jié)果婚禮上肝断,老公的妹妹穿的比我還像新娘挑辆。我一直安慰自己例朱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布鱼蝉。 她就那樣靜靜地躺著洒嗤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪魁亦。 梳的紋絲不亂的頭發(fā)上渔隶,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機(jī)與錄音洁奈,去河邊找鬼间唉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛利术,可吹牛的內(nèi)容都是我干的呈野。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼印叁,長吁一口氣:“原來是場噩夢啊……” “哼被冒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起轮蜕,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤昨悼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后跃洛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體率触,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年汇竭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葱蝗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡细燎,死狀恐怖两曼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情找颓,我是刑警寧澤合愈,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站击狮,受9級特大地震影響佛析,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彪蓬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一寸莫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧档冬,春花似錦膘茎、人聲如沸桃纯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽态坦。三九已至,卻和暖如春棒拂,著一層夾襖步出監(jiān)牢的瞬間伞梯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工帚屉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谜诫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓攻旦,卻偏偏與公主長得像喻旷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子牢屋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容