本文主要為大家?guī)硪粋€JS 仿支付寶input文字輸入框放大組件的實例。小編覺得蠻不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。
input輸入的時候可以在後邊顯示數(shù)位放大鏡
<!doctype html> <html lang="en"> ?<head> ?<meta charset="UTF-8"> ?<title>JS?仿支付寶input文本輸入框放大組件</title> ?<script src="js/jquery.min.js"></script> ?<style> ??*?{?margin:?0;?padding:?0;?border-width:?1px;?} ??.parentCls?{margin:5px?60px?0;} ??.js-max-input?{border:?solid?1px?#ffd2b2;?position:relative;background:?#fffae5;padding:?0?10px?0?10px;font-size:20px;color:?#ff4400} ??.inputElem4{?width:?300px;?height:?36px;?border:?1px?solid?#E0E0E0;?padding-left:?10px;?line-height:?36px;?font-size:?14px;?} ?</style> ?</head> ?<body> ?<p class="parentCls"> ??<input type="text" class="inputElem4" autocomplete = "off" maxlength="18"/> ?</p> ??<script src="js/jq22.js"></script> ??<script> ???//?初始化 ???$(function(){ ???new?TextMagnifier({ ????inputElem:?'.inputElem4', ????align:?'bottom', ????splitType:?[6,4,4,4] ???}); ???}); ??</script> ?</body> </html>
/** ?*?JS?仿支付寶的文本輸入框放大組件 ?*/? ?function?TextMagnifier(options)?{ ??this.config?=?{ ?? ??inputElem???:??'.inputElem',??//?輸入框目標(biāo)元素 ??parentCls???:??'.parentCls',??//?目標(biāo)元素的父類 ??align????:??'right',???//?對齊方式有?['top','bottom','left','right']四種?默認(rèn)為top ??splitType???:??[3,4,4],???//?拆分規(guī)則 ??delimiter???:??'-'????//?分隔符可自定義 ??}; ??this.cache?=?{ ???isFlag?:?false ??}; ??this.init(options); ?} ?TextMagnifier.prototype?=?{ ?? ??constructor:?TextMagnifier, ??init:?function(options)?{ ??this.config?=?$.extend(this.config,options?||?{}); ??var?self?=?this, ???_config?=?self.config, ???_cache?=?self.cache; ?? ??self._bindEnv(); ?? ?? ??}, ??/* ??*?在body后動態(tài)添加HTML內(nèi)容 ??*?@method?_appendHTML ??*/ ??_appendHTML:?function($this,value)?{ ???var?self?=?this, ????_config?=?self.config, ????_cache?=?self.cache; ???var?html?=?'', ????$parent?=?$($this).closest(_config.parentCls); ????if($('.js-max-input',$parent).length?==?0)?{ ????html?+=?'<p class="js-max-input"></p>'; ????$($parent).append(html); ????} ????var?value?=?self._formatStr(value); ????$('.js-max-input',$parent).html(value); ??}, ??/* ??*?給目標(biāo)元素定位 ??*?@method?_position ??*?@param?target ??*/ ??_position:?function(target){ ??var?self?=?this, ???_config?=?self.config; ??var?elemWidth?=?$(target).outerWidth(), ???elemHeight?=?$(target).outerHeight(), ???elemParent?=?$(target).closest(_config.parentCls), ???containerHeight?=?$('.js-max-input',elemParent).outerHeight();? ?? ??$(elemParent).css({"position":'relative'}); ?? ??switch(true){ ??? ???case?_config.align?==?'top': ???? ????$('.js-max-input',elemParent).css({'position':'absolute','top'?:-elemHeight?-?containerHeight/2,'left':0}); ????break; ??? ???case?_config.align?==?'left': ????$('.js-max-input',elemParent).css({'position':'absolute','top'?:0,'left':0}); ????break; ??? ???case?_config.align?==?'bottom': ????$('.js-max-input',elemParent).css({'position':'absolute','top'?:elemHeight?+?4?+?'px','left':0}); ????break; ??? ???case?_config.align?==?'right': ????$('.js-max-input',elemParent).css({'position':'absolute','top'?:0,'left':elemWidth?+?2?+?'px'}); ????break; ??} ??}, ??/** ??*?綁定事件 ??*?@method?_bindEnv ??*/ ??_bindEnv:?function(){ ??var?self?=?this, ???_config?=?self.config, ???_cache?=?self.cache; ??//?實時監(jiān)聽輸入框值的變化 ??$(_config.inputElem).each(function(index,item){ ???$(item).keyup(function(e){ ????var?value?=?$.trim(e.target.value), ?????parent?=?$(this).closest(_config.parentCls); ????if(value?==?'')?{ ?????self._hide(parent); ????}else?{ ?????var?html?=?$.trim($('.js-max-input',parent).html()); ?????if(html?!=?'')?{ ??????self._show(parent); ?????} ????} ????self._appendHTML($(this),value); ????self._position($(this)); ???}); ???$(item).unbind('focusin'); ???$(item).bind('focusin',function(){ ????var?parent?=?$(this).closest(_config.parentCls), ?????html?=?$.trim($('.js-max-input',parent).html()); ????if(html?!=?'')?{ ?????self._show(parent); ????} ???}); ???$(item).unbind('focusout'); ???$(item).bind('focusout',function(){ ????var?parent?=?$(this).closest(_config.parentCls); ????self._hide(parent); ???}); ??}); ??}, ??/** ??*?格式化下 ??*?@method?_formatStr ??*/ ??_formatStr:?function(str){ ??var?self?=?this, ???_config?=?self.config, ???_cache?=?self.cache; ??var?count?=?0, ???output?=?[]; ??for(var?i?=?0,?ilen?=?_config.splitType.length;?i?< ilen; i++){ var s = str.substr(count,_config.splitType[i]); if(s.length >?0){ ????output.push(s); ???} ???count+=?_config.splitType[i]; ??} ??return?output.join(_config.delimiter); ??}, ??/* ??*?顯示?放大容器 ??*?@method?_show ??*/ ??_show:?function(parent)?{ ??var?self?=?this, ???_config?=?self.config, ???_cache?=?self.cache; ??if(!_cache.isFlag)?{ ???$('.js-max-input',parent).show(); ???_cache.isFlag?=?true; ??} ??}, ??/* ??*?隱藏?放大容器 ??*?@method?hide ??*?{public} ??*/ ??_hide:?function(parent)?{ ??var?self?=?this, ???_config?=?self.config, ???_cache?=?self.cache; ??if(_cache.isFlag)?{ ???$('.js-max-input',parent).hide(); ???_cache.isFlag?=?false; ??} ??} ?};
效果圖
相關(guān)推薦:
JavaScript高仿支付寶倒數(shù)頁面及程式碼實作
JavaScript仿支付寶密碼輸入框_javascript技巧
#以上是JS仿支付寶input文字輸入框放大組件詳解的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

WebSocket與JavaScript:實現(xiàn)即時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)引言:隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,即時監(jiān)控系統(tǒng)在各個領(lǐng)域中得到了廣泛的應(yīng)用。而實現(xiàn)即時監(jiān)控的關(guān)鍵技術(shù)之一就是WebSocket與JavaScript的結(jié)合使用。本文將介紹WebSocket與JavaScript在即時監(jiān)控系統(tǒng)中的應(yīng)用,並給出程式碼範(fàn)例,詳細解釋其實作原理。一、WebSocket技

如何使用WebSocket和JavaScript實現(xiàn)線上語音辨識系統(tǒng)引言:隨著科技的不斷發(fā)展,語音辨識技術(shù)已成為了人工智慧領(lǐng)域的重要組成部分。而基於WebSocket和JavaScript實現(xiàn)的線上語音辨識系統(tǒng),具備了低延遲、即時性和跨平臺的特點,成為了廣泛應(yīng)用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現(xiàn)線上語音辨識系

如何利用JavaScript和WebSocket實現(xiàn)即時線上點餐系統(tǒng)介紹:隨著網(wǎng)路的普及和技術(shù)的進步,越來越多的餐廳開始提供線上點餐服務(wù)。為了實現(xiàn)即時線上點餐系統(tǒng),我們可以利用JavaScript和WebSocket技術(shù)。 WebSocket是一種基於TCP協(xié)定的全雙工通訊協(xié)議,可實現(xiàn)客戶端與伺服器的即時雙向通訊。在即時線上點餐系統(tǒng)中,當(dāng)使用者選擇菜餚並下訂單

JavaScript和WebSocket:打造高效的即時天氣預(yù)報系統(tǒng)引言:如今,天氣預(yù)報的準(zhǔn)確性對於日常生活以及決策制定具有重要意義。隨著技術(shù)的發(fā)展,我們可以透過即時獲取天氣數(shù)據(jù)來提供更準(zhǔn)確可靠的天氣預(yù)報。在本文中,我們將學(xué)習(xí)如何使用JavaScript和WebSocket技術(shù),來建立一個高效的即時天氣預(yù)報系統(tǒng)。本文將透過具體的程式碼範(fàn)例來展示實現(xiàn)的過程。 We

如何使用WebSocket和JavaScript實現(xiàn)線上預(yù)約系統(tǒng)在當(dāng)今數(shù)位化的時代,越來越多的業(yè)務(wù)和服務(wù)都需要提供線上預(yù)約功能。而實現(xiàn)一個高效、即時的線上預(yù)約系統(tǒng)是至關(guān)重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預(yù)約系統(tǒng),並提供具體的程式碼範(fàn)例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript教學(xué):如何取得HTTP狀態(tài)碼,需要具體程式碼範(fàn)例前言:在Web開發(fā)中,經(jīng)常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經(jīng)常需要取得傳回的HTTP狀態(tài)碼來判斷操作是否成功,並根據(jù)不同的狀態(tài)碼來進行對應(yīng)的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態(tài)碼,並提供一些實用的程式碼範(fàn)例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節(jié)點。這個方法需要兩個參數(shù):要插入的新節(jié)點和參考節(jié)點(即新節(jié)點將要插入的位置的節(jié)點)。

JavaScript中的HTTP狀態(tài)碼取得方法簡介:在進行前端開發(fā)中,我們常常需要處理與後端介面的交互,而HTTP狀態(tài)碼就是其中非常重要的一部分。了解並取得HTTP狀態(tài)碼有助於我們更好地處理介面?zhèn)骰氐馁Y料。本文將介紹使用JavaScript取得HTTP狀態(tài)碼的方法,並提供具體程式碼範(fàn)例。一、什麼是HTTP狀態(tài)碼HTTP狀態(tài)碼是指當(dāng)瀏覽器向伺服器發(fā)起請求時,服務(wù)
