當前位置:首頁 » 網頁前端 » 前端冒泡
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端冒泡

發布時間: 2022-02-05 07:40:36

Ⅰ web前端學習分哪些階段

您好,web前端學習分為8個階段:

階段1.前端核心基礎

HTML +_CSS核心、JavaScript基礎語法、JavaScript面向對象、JavaScript DOM和

BOM編程、jQuery框架

階段2.HTML5 + CSS3 + 移動端核心

HTML5新特性、Canvas專列、CSS3新特性、CSS3進階、CSS3實例演練

階段3.移動端

移動端核心、移動端適配、移動端特效

階段4.伺服器端

伺服器端開發、資料庫操作、前後端交互核心、微信公眾號開發

階段5.JavaScript高級

JavaScript基礎深入剖析、JavaScript面向對象深入講解、JavaScript非同步編程、

JavaScript函數式編程JavaScript設計模式

階段6.前端必備

性能優化、版本控制工具、模塊化、項目構建工具

階段7.高級框架

React框架基本使用、React框架進階、Vue框架基本使用、Vue框架進階、Vue源碼分析

階段8.小程序

原生小程序入門、原生小程序API使用、小程序框架Mpvue

web前端學習有哪些階段

這個學習路線圖不管是自學還是參加培訓班都是可以的,希望可以幫助到你。

Ⅱ web前端開發需要掌握的幾個必備技術

Web前端開發需要掌握的幾個必備技術是:
HTML +_CSS核心、JavaScript、VUE框架

前端的應用非常廣泛,基本網站、APP、HTML5小程序等都需要前端開發,所以只要是互聯網產品基本都需要前端。
前端程序猿切頁面寫頁面,Web上、H5上的炫酷效果,是前端開發大展身手的地方。最常見的用於前端開發的技術組合是:
HTML+CSS+JavaScript。
web前端是在開發人員中最直接面向產品、面向用戶的設計人員,一個開發團隊的成果是要靠web前端去展現,因為用戶不會去關心後台的處理有多麼強大。
後端開發是寫後台,各種業務邏輯、數據處理、模塊介面、客戶端介面等等。後端開發者通常精通於一種Web編程語言和一個資料庫管理系統。電商平台點擊篩選條件下面為你篩選出來的寶貝的功能以及付款人數數據的變化等都是由後台來實現提供的。
目前web產品交互越來越復雜,用戶使用體驗和網站前端性能優化這些都得靠web前端去做。
前端開發則是網站的前台代碼實現,包括基本的HTML和CSS以及JavaScript/ajax,最新的高級版本HTML5、CSS3,以及SVG等。
前端開發需要學習的技術
1 掌握基本web前端開發技術:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug
2 必須掌握網站性能優化、SEO和伺服器端開發技術的基礎知識
3 必須學會運用各種web前端開發與測試工具進行輔助開發
4 除了掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等
5 未來web前端開發工程師還要研究HTML5、web視覺設計、網站配色、網站交互設計模式等相關技術
web前端有廣闊的發展空間,app、小程序、移動端、pc端等都網站是需要前端技術的開發支持才能夠完成,技術門檻相對較低、需求量較大,薪資待遇良好。只要是互聯網端的客戶界面,就需要前端來製作完成,前端開發的編程量不大,但是需要部分編程,入門簡單,但是要學的深入需要一個過程。
Web前端招聘崗位
• 前端開發工程師、Web開發工程師、網頁開發工程師、HTML開發工程師...
• H5開發工程師、移動應用開發工程師、App開發工程師、小程序開發工程師...
• JS開發工程師、Vue.js開發工程師、Node.js開發工程師、前端架構師...
• 小游戲開發工程師、數據可視化開發工程師、WebGL開發工程師、WebVR開 發工程師、Web安全工程師...

Ⅲ web前端自學要多久

這個要看個人的實際情況決定;自學最注重個人的自製力和學習力,你要抵禦各種誘惑,還要有詳細的學習規劃,才能保證正常的學習,徐徐漸進。下面的學習路線或許對你有幫助:

前端完整學習路線

第一階段:

HTML CSS:HTML進階、CSS進階、div css布局、HTML css整站開發。

JavaScript基礎:Js基礎教程、js內置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。

JS基本特效:常見特效、例如:tab、導航、整頁滾動、輪播圖、JS製作幻燈片、彈出層、手風琴菜單、瀑布流布局、滾動事件、滾差視圖。

JS高級特徵:正則表達式、排序演算法、遞歸演算法、閉包、函數節流、作用域鏈、基於距離運動框架、面向對象基礎。

第二階段:HTML5和移動Web開發

HTML5:HTML5新語義標簽、HTML5表單、音頻和視頻、離線和本地存儲、SVG、Web Socket、Canvas。

CSS3:CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、background系列屬性改變、Transition、動畫、景深和深透、3D效果製作、Velocity.js框架、元素進場、出場策略、炫酷CSS3網頁製作。

移動Web開發:跨終端WEB和主流設備簡介、視口、流式布局、彈性盒子、rem、移動終端JavaScript事件、手機中常見JS效果製作、Zepto.js、手機聚劃算頁面、手機滾屏。

第三階段:HTTP服務和AJAX編程

WEB伺服器基礎:伺服器基礎知識、Apache伺服器和其他WEB伺服器介紹、Apache伺服器搭建、HTTP介紹。

PHP基礎:PHP基礎語法、使用PHP處理簡單的GET或者POST請求。

第四階段:面向對象進階

面向對象終極篇:從內存角度到理解JS面向對象、基本類型、復雜類型、原型鏈、ES6中的面向對象、屬性讀寫許可權、設置器、訪問器。

面向對象三大特徵:繼承性、多態性、封裝性、介面。

設計模式:面向對象編程思維、單例模式、工廠模式、策略模式、觀察者模式、模板方法模式、代理模式、裝飾者模式、適配器模式、面向切面編程。

第五階段:封裝一個屬於自己的框架

框架封裝基礎:事件流、冒泡、捕獲、事件對象、事件框架、選擇框架。

框架封裝中級:運動原理、單物體運動框架、多物體運動框架、運動框架面向對象封裝。

框架封裝高級和補充:JQuery框架雛形、可擴展性、模塊化、封裝屬於傳智自己的框架。

第六階段:模塊化組件開發

面向組件編程:面向組件編程的方式、面向組件編程的實現原理、面向組件編程實戰、基於組件化思想開發網站應用程序。

面向模塊編程:AMD設計規范、CMD設計規范、RequireJS,LoadJS、淘寶的SeaJS。

第七階段:主流的流行框架

Web開發工作流:GIT/SVN、Yeoman腳手架、NPMer依賴管理工具、Grunt/Gulp/Webpack。

MVC/MVVM/MVW框架:Angular.js、Backbone.js、Knockout/Ember。

常用庫:React.js、Vue.js、Zepto.js。

第八階段:HTML5原生移動應用開發

Cordova:WebApp/NativeApp/HybirdApp簡介、Cordova簡介、與PhoneGap之間的關系、開發環境搭建、Cordova實戰(創建項目,配置,編譯,調試,部署發布)。

Ionic:Ionic簡介和同類對比、模板項目解析、常見組件及使用、結合Angular構建APP、常見效果(下拉刷新,上拉載入,側滑導航,選項卡)。

HTML5 :HTML5 中國產業聯盟、HTML5 Plus Runtime環境、HBuilder開發工具、MUI框架、H5 開發和部署。

第九階段: Node.js全棧開發:

快速入門:Node.js發展、生態圈、Io.js、Linux/Windows/OS X環境配置、REPL環境和控制台程序、非同步編程,非阻塞I/O、模塊概念,模塊管理工具、開發流程,調試,測試。

核心模塊和對象:全局對象global,process,console,util、事件驅動,事件發射器、加密解密,路徑操做。

Ⅳ web前端javascript能實現什麼演算法或者計算

在Web開發中,JavaScript很重要,演算法也很重要。下面整理了一下一些常見的演算法在JavaScript下的實現,包括二分法、求字元串長度、數組去重、插入排序、選擇排序、希爾排序、快速排序、冒泡法等等。僅僅是為了練手,不保證高效與美觀,或許還有Bug,有時間再完善吧。

1.二分法:

function binary(items,value){

var startIndex=0,

stopIndex=items.length-1,

midlleIndex=(startIndex+stopIndex)>>>1;

while(items[middleIndex]!=value && startIndex

if(items[middleIndex]>value){

stopIndex=middleIndex-1;

}else{

startIndex=middleIndex+1;

}

middleIndex=(startIndex+stopIndex)>>>1;

}

return items[middleIndex]!=value ? false:true;

}

2.十六進制顏色值的隨機生成:

function randomColor(){

var arrHex=["0","2","3","4","5","6","7","8","9","a","b","c","d"],

strHex="#",

index;

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

index=Math.round(Math.random()*15);

strHex+=arrHex[index];

}

return strHex;

}

一個求字元串長度的方法:

function GetBytes(str){

var len=str.length,

bytes=len;

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

if(str.CharCodeAt>255){

bytes++;

}

}

return bytes;

}

3.js實現數組去重:

Array.protype.delRepeat=function(){

var newArray=new Array();

var len=this.length;

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

for(var j=i+1;j < len;j++)

{

if(this[i]==this[j])

{

++i;

}

}

newArray.push(this[i]);

}

return newArray;

}

4.插入排序。所謂的插入排序,就是將序列中的第一個元素看成一個有序的子序列,然後不段向後比較交換比較交換。

function insertSort(arr){

var key;

for(var j = 1; j < arr.length ; j++){

//排好序的

var i = j - 1;

key = arr[j];

while(i >= 0 && arr[i] > key){

arr[i + 1] = arr[i];

i --;

}

arr[i + 1] = key;

}

return arr;

}

5.選擇排序。其實基本的思想就是從待排序的數組中選擇最小或者最大的,放在起始位置,然後從剩下的數組中選擇最小或者最大的排在這公司數的後面。

function selectionSort(data)

{

var i, j, min, temp , count=data.length;

for(i = 0; i < count - 1; i++) {

/* find the minimum */

min = i;

for (j = i+1; j < count; j++)

{

if (data[j] < data[min])

{ min = j;}

}

/* swap data[i] and data[min] */

temp = data[i];

data[i] = data[min];

data[min] = temp;

}

return data;

}

6.希爾排序,也稱遞減增量排序演算法。其實說到底也是插入排序的變種。

function shellSort(array){

var stepArr = [1750, 701, 301, 132, 57, 23, 10, 4, 1]; //
reverse()在維基上看到這個最優的步長較小數組

var i = 0;

var stepArrLength = stepArr.length;

var len = array.length;

var len2 = parseInt(len/2);

for(;i < stepArrLength; i++){

if(stepArr[i] > len2){

continue;

}

stepSort(stepArr[i]);

}

// 排序一個步長

function stepSort(step){

//console.log(step) 使用的步長統計

var i = 0, j = 0, f, tem, key;

var stepLen = len%step > 0 ? parseInt(len/step) + 1 : len/step;

for(;i < step; i++){// 依次循環列

for(j=1;/*j < stepLen && */step * j + i < len;
j++){//依次循環每列的每行

tem = f = step * j + i;

key = array[f];

while((tem-=step) >= 0){// 依次向上查找

if(array[tem] > key){

array[tem+step] = array[tem];

}else{

break;

}

}

array[tem + step ] = key;

}

}

}

return array;

}

7.快速排序。其實說到底快速排序演算法就系對冒泡排序的一種改進,採用的就是演算法理論中的分治遞歸的思想,說得明白點,它的做法就是:通過一趟排序將待排序的紀錄分割成兩部分,其中一部分的紀錄值比另外一部分的紀錄值要小,就可以繼續分別對這兩部分紀錄進行排序;不段的遞歸實施上面兩個操作,從而實現紀錄值的排序。

function quickSort(arr,l,r){

if(l < r){

var mid=arr[parseInt((l+r)/2)],i=l-1,j=r+1;

while(true){

while(arr[++i] < mid);

while(arr[--j]>mid);

if(i>=j)break;

var temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

quickSort(arr,l,i-1);

quickSort(arr,j+1,r);

}

return arr;

}

8.冒泡法:

function bullSort(array){

var temp;

for(var i=0;i < array.length;i++)

{

for(var j=array.length-1;j > i;j--){

if(array[j] < array[j-1])

{

temp = array[j];

array[j]=array[j-1];

array[j-1]=temp;

}

}

}

return array;

}

Ⅳ web前端開發需要哪些工具

Web前端是一個新興職業,市場需求大,薪資待遇高,吸引了很多人加入學習。無論是初學小白亦或是自身前端開發人員,好用的軟體工具可以幫助他們更好的工作。今天千鋒武漢給大家分享一下Web前端開發用什麼軟體。

1、Sublime Text

Sublime Text是一個代碼編輯器也是HTML和散文先進的文本編輯器。漂亮的用戶界面和非凡的功能,例如迷你地圖,多選擇,Python的插件,代碼段,等等。完全可自定義鍵綁定,菜單和工具欄。Sublime Text的主要功能包括:拼寫檢查,書簽,完整的Python API,Goto功能,即時項目切換,多選擇,多窗口等等。

2、Dreamweaver

Adobe Dreamweaver使用所見即所得的介面,亦有HTML(標准通用標記語言下的一個應用)編輯的功能,藉助經過簡化的智能編碼引擎,輕松地創建、編碼和管理動態網站。 訪問代碼提示,即可快速了解 HTML、CSS 和其他Web標准。使用視覺輔助功能減少錯誤並提高網站開發速度。

3、Visual Studio Code

Visual Studio Code中文版是微軟推出的帶 GUI 的代碼編輯器,軟體功能非常強大,界面簡潔明晰、操作方便快捷,設計得很人性化。軟體主要改進了文檔視圖,完善了對 Markdown的支持,新增PHP語法高亮。

4、HBuilder

HBuilder是專為前端打造的開發工具,具有飛一樣的編碼、最全的語法庫和瀏覽器兼容數據、可以方便的製作手機APP、最保護眼睛的綠柔設計等特點。支持HTML、CSS、JS、PHP的快速開發。從開放注冊以來深受廣大前端朋友們的喜愛。

5、WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 開發工具。目前已經被廣大中國JS開發者譽為「Web前端開發神器」、「最強大的HTML5編輯器」、「最智能的JavaScript IDE」等。與IntelliJ IDEA同源,繼承了IntelliJ IDEA強大的JS部分的功能。

想知道「Web前端開發用什麼軟體」,通過網上搜索你可以發現很多,而能否很好的藉助這些軟體完成項目,關鍵還要看你的技術。千鋒武漢網站上有以上這些工具的安裝包,需要的小夥伴自己去下載吧。

Ⅵ 前端開發和後端開發哪個好學

前端工程師主要的工作職責分為三大部分,分別是傳統的網頁前端開發,移動端開發和大數據呈現端開發。Web前端開發主要針對的是PC端開發任務;移動端開發則包括Android開發、iOS開發和各種小程序開發,在移動互聯網迅速發展的帶動下,移動端的開發任務量是比較大的。

後端工程師的主要職責分別是平台設計、介面設計和功能實現。平台設計主要是搭建後端的支撐服務容器;介面設計主要針對於不同行業進行相應的功能介面設計,通常一個平台有多套介面,就像衛星導航平台設有民用和軍用兩套介面一樣;功能實現則是完成具體的業務邏輯實現。
知識結構方面
前端開發涉及到的內容包括Html、CSS、JavaScript、Android開發(採用Java或者kotlin)、iOS開發(採用OC或者Swift)、各種小程序開發技術(類Html),隨著前端開發任務的不斷拓展,前端開發後端化也是一個較為明顯的趨勢,比如Nodejs的應用。
後端開發通常需要根據業務場景進行不同語言的選擇,另外後端開發的重點在於演算法設計、數據結構、性能優化等方面,在具體的功能實現部分可以採用Java、Python或者PHP等編程語言來實現。
從上手來說,大部分認為前端開發入門相對簡單,深度上而言,後端又難一些,前端開發和後端開發 需要涉及面不一樣 不能說那個簡單或者哪個難,需知道每一行入門都很簡單 但是深入學習就會發現各自難點。最終不論是前端後端很多技術都會相互掌握些。

Ⅶ Web前端開發主要學哪些

前端知識是一種很火的技術,一直在編程語言中名列前茅,而且隨著瀏覽器技術不斷發展,還有會很多擴展的可能性,比如3D可視化,谷歌發布一個全新的圖形工具TensorFlow Graphics,結合計算機圖形學和計算機視覺技術,以無監督的方式解決復雜3D視覺任務,無疑谷歌瀏覽器也會支持3D圖像,前端技術實現在線可視化開發,基於webgl的3D框架有thingjs,three.js。
thingjs是這兩年新興的3D框架,更加簡單,官網有注冊優惠別錯過~理論知識是基礎,對於前端開發者來說,技術應用是進一步的需求,所以thingjs提供免費3D源碼和3D模型庫,讓你在項目開發過程中有東風助力,在實操的過程中你會更好地吸收前端技術知識!
前端技術肯定不是最終的目的,做成一個有價值的商業項目,才能讓你更有成就感!

Ⅷ 如何成為一個前端工程師

作為一名前端工程師,必須要掌握的三樣東西HTML,CSS,Javascript。這里掌握的意思是,你不需要去藉助搜索引擎去完成你的主要任務,當然我沒有涵蓋到書本,因為在JS發展到現在的,我們已經在裡面添加里數不清的介面,你也不可能全部都瞭然於心。
三者當中你還要比較深刻了解JS中的兩大部分,COREscript 和DOM,前者也就是我們經常提到的ECMAscript。你需要知道JS中最不同於其他語言的一些基本概念,諸如原型鏈,事件冒泡,字面量等,這對於你去了解一些框架有很大的幫助。當然你是不能不懂得AJAX,幾乎我沒有見過有哪個新型web站是不用這些技術的。另外你還懂得如何去操縱DOM,這個很關鍵。也是最繁瑣的一個地方(繁瑣的地方是,當你深入理解到節點類型,map,一堆繁瑣的底層API的時候,你就會想哭的感覺,當然很多時候你都不會用到這些東西),當然一般來說它也不是什麼難題,多加訓練即可。
socket 需要重點理解),只是一些新的擴展性API,在經驗當中可以成長。
當你覺得自己概念知識都能夠基本掌握的時候,那麼請你去實踐。多麼偉大的代碼都要經過實踐出真知,它不僅可以給你帶來驗證,而且它可以讓你深刻去理解。
如果你想繼續提升自己的能力,那麼可以從以下幾個方面去提升:
1.閱讀別人的程序,理解別人的思路。你可以去使用和閱讀框架,當然有人一聽到框架就會嗤之以鼻,特別是性能黨。我想說框架是個好東西,不過前提是你最好理解底層的東西。
2.優化你的程序,把你的程序做精做簡,這是非常考驗一個前端工程師的自我修養能力。
3.構建一個後端程序,或許你可以使用node去構建一個伺服器,網上有教程手把手教你從基本做起,讓你可以很好的貫穿前後端的知識。
4.如果你還有時間,那麼可以學些腳本語言提高下自己的能力。作為一名前端個工程師,我們並不是需要你很全面的掌握一切有關計算機的知識,因為那樣很不實際。你要相信你的記憶力和精力都是有限的,特別是面對費腦子的計算機。

Ⅸ 前端開發中常用到的js特效有哪些

HTML5 DOM 選擇器
// querySelector() 返回匹配到的第一個元素var item = document.querySelector('.item');console.log(item);// querySelectorAll() 返回匹配到的所有元素,是一個nodeList集合var items = document.querySelectorAll('.item');console.log(items[0]);1234567

阻止默認行為
// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) { event = event || window.event; if (event.preventDefault){ // w3c方法 阻止默認行為
event.preventDefault();
} else{ // ie 阻止默認行為
event.returnValue = false;
}
}, false);// jQuery$('#btn').on('click', function (event) { event.preventDefault();
});1234567891011121314151617

阻止冒泡
// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) { event = event || window.event; if (event.stopPropagation){ // w3c方法 阻止冒泡
event.stopPropagation();
} else{ // ie 阻止冒泡
event.cancelBubble = true;
}
}, false);// jQuery$('#btn').on('click', function (event) { event.stopPropagation();
});1234567891011121314151617

滑鼠滾輪事件
$('#content').on("mousewheel DOMMouseScroll", function (event) {
// chrome & ie || // firefox
var delta = (event.originalEvent.wheelDelta && (event.originalEvent.wheelDelta > 0 ? 1 : -1)) || (event.originalEvent.detail && (event.originalEvent.detail > 0 ? -1 : 1));

if (delta > 0) {
// 向上滾動
console.log('mousewheel top');
} else if (delta < 0) { // 向下滾動
console.log('mousewheel bottom');
}
});123456789101112

檢測瀏覽器是否支持svg
function isSupportSVG() {
var SVG_NS = 'http://www.w3.org/2000/svg'; return !!document.createElementNS &&!!document.createElementNS(SVG_NS, 'svg').createSVGRect;
}

// 測試console.log(isSupportSVG());1234567

檢測瀏覽器是否支持canvas
function isSupportCanvas() {
if(document.createElement('canvas').getContext){ return true;
}else{ return false;
}
}// 測試,打開谷歌瀏覽器控制台查看結果console.log(isSupportCanvas());12345678910

檢測是否是微信瀏覽器
function isWeiXinClient() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}// 測試alert(isWeiXinClient());1234567891011

jQuery 獲取滑鼠在圖片上的坐標
$('#myImage').click(function(event){
//獲取滑鼠在圖片上的坐標
console.log('X:' + event.offsetX+'\n Y:' + event.offsetY);

//獲取元素相對於頁面的坐標
console.log('X:'+$(this).offset().left+'\n Y:'+$(this).offset().top);
});1234567

驗證碼倒計時代碼
<!-- dom --><input id="send" type="button" value="發送驗證碼">12
// 原生js版本var times = 60, // 臨時設為60秒
timer = null;

document.getElementById('send').onclick = function () {
// 計時開始
timer = setInterval(function () {
times--; if (times <= 0) {
send.value = '發送驗證碼';
clearInterval(timer);
send.disabled = false;
times = 60;
} else {
send.value = times + '秒後重試';
send.disabled = true;
}
}, 1000);
}
// jQuery版本var times = 60,
timer = null;

$('#send').on('click', function () {
var $this = $(this); // 計時開始
timer = setInterval(function () {
times--; if (times <= 0) {
$this.val('發送驗證碼');
clearInterval(timer);
$this.attr('disabled', false);
times = 60;
} else {
$this.val(times + '秒後重試');
$this.attr('disabled', true);
}
}, 1000);
});2122

常用的一些正則表達式
//匹配字母、數字、中文字元
/^([A-Za-z0-9]|[\u4e00-\u9fa5])*$/

//驗證郵箱
/^\w+@([0-9a-zA-Z]+[.])+[a-z]{2,4}$/

//驗證手機號
/^1[3|5|8|7]\d{9}$/

//驗證URL
/^http:\/\/.+\./

//驗證身份證號碼
/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/

//匹配中文字元的正則表達式
/[\u4e00-\u9fa5]/

//匹配雙位元組字元(包括漢字在內)
/[^\x00-\xff]/

js時間戳、毫秒格式化
function formatDate(now) {
var y = now.getFullYear(); var m = now.getMonth() + 1; // 注意js里的月要加1
var d = now.getDate(); var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds(); return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s;
}

var nowDate = new Date(2016, 5, 13, 19, 18, 30, 20);

console.log(nowDate.getTime()); // 獲得當前毫秒數: 1465816710020console.log(formatDate(nowDate));123456789101112131415

js限定字元數(注意:一個漢字算2個字元)
<input id="txt" type="text">//字元串截取function getByteVal(val, max) {
var returnValue = ''; var byteValLen = 0; for (var i = 0; i < val.length; i++) { if (val[i].match(/[^\x00-\xff]/ig) != null) byteValLen += 2; else byteValLen += 1; if (byteValLen > max) break;
returnValue += val[i];
} return returnValue;
}

$('#txt').on('keyup', function () {
var val = this.value; if (val.replace(/[^\x00-\xff]/g, "**").length > 14) { this.value = getByteVal(val, 14);
}
});12345678910111213141516171819

js判斷是否移動端及瀏覽器內核
var browser = {
versions: function() {
var u = navigator.userAgent;
return {
trident: u.indexOf('Trident') > -1, //IE內核
presto: u.indexOf('Presto') > -1, //opera內核
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內核
gecko: u.indexOf('Firefox') > -1, //火狐內核Gecko
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android
iPhone: u.indexOf('iPhone') > -1 , //iPhone
iPad: u.indexOf('iPad') > -1, //iPad
webApp: u.indexOf('Safari') > -1 //Safari
};
}
}

if (browser.versions.mobile() || browser.versions.ios() || browser.versions.android() || browser.versions.iPhone() || browser.versions.iPad()) {
alert('移動端');
}21

之前我用過一個檢測客戶端的庫 覺得挺好用的,也推薦給大家 叫 device.js,大家可以 Googel 或 網路
GItHub倉庫地址:https://github.com/matthewhudson/device.js
getBoundingClientRect() 獲取元素位置
//它返回一個對象,其中包含了left、right、top、bottom四個屬性var myDiv = document.getElementById('myDiv');var x = myDiv.getBoundingClientRect().left;
var y = myDiv.getBoundingClientRect().top;

// 相當於jquery的: $(this).offset().left、$(this).offset().top // js的:this.offsetLeft、this.offsetTop123456

HTML5全屏
function fullscreen(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
}}

fullscreen(document.documentElement);12345678910111213

Ⅹ 什麼叫做冒泡排序

冒泡排序★★★★★★
#include<stdio.h>
#define N 5
void main()
{
int i,j;
int grade[N],temp;
printf("輸入5個數\n");
for(i=0;i<N;i++)
{
scanf("%d",&grade[i]);
}
for(i=0;i<N;i++)
{
for(j=0;j<N-1-i;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}
printf("最後排序為:\n");
for(i=0;i<N;i++)
{
printf("%d",grade[i]);
}
printf("\n");
}
#include<stdio.h> //鏈接標准頭文件
#define N 5 //定義常量N並賦值為5
void main() //主函數入口
{ //表示主函數開始
int i,j; //定義整形變數i和j
int grade[N],temp; //定義N維(N=5,也就是五維啦^^)整形數組和整形變數temp
printf("輸入5個數\n"); //在屏幕上顯式「輸入5個數」並且換行
for(i=0;i<N;i++) //開始for循環,從i=0,每次加1,直到i=4,共需循環5次
{ //循環體開始
scanf("%d",&grade[i]); //依次獲取用戶輸入的整數值並存入數組grade中
} //循環結束
for(i=0;i<N;i++) //開始外層for循環,從i=0,每次加1,直到i=4
{ //外層循環體開始
for(j=0;j<N-1-i;j++) //開始外層for循環,從j=0,每次加1直到i等於外層循環的N-j-1
{ //內層循環體開始
if(grade[j]<grade[j+1]) //條件判斷
{ //如果整形數組前面的數比其後的小,執行以下語句
temp=grade[j+1]; //將比較大的數賦值給temp
grade[j+1]=grade[j]; //將比較小的數賦值給數組中後面的變數
grade[j]=temp; //將比較大的數賦值給數組中前面的變數
} //從此便完成大小變數的交換,使得大值往前放
} //結束內層循環
} //結外內層循環,完成排序
printf("最後排序為:\n");//在屏幕顯式「最後排序為:」並換行
for(i=0;i<N;i++) //同開始的for循環類似
{ //開始循環輸出
printf("%d",grade[i]); //只是這里要逐個輸出數組中的五個數值
} //結束循環輸出
printf("\n"); //輸出換行到屏幕,看不到什麼效果,可刪掉
} //結束main()函數