如果是在純web中調(diào)用攝像頭,推薦使用input標(biāo)簽的方式,兼容性比較好,可以參照如下鏈接:
http://www.qdfuns.com/notes/2...
網(wǎng)上有很多文章使用video和canvas實(shí)現(xiàn),但是進(jìn)過測試,兼容性非常不理想。如果不是兼容特定的機(jī)型,不推薦使用。具體你可以用下面的代碼測試一下:
<html>
<head>
<title>html5調(diào)用攝像頭拍照</title>
<style type="text/css">
#camera {
width: 640px;
height: 525px;
position: fixed;
border: 1px solid #f0f0f0;
-moz-border-radius: 4px 4px 0 0;
-webkit-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
-moz-box-shadow: 0 0 4px rgba(0,0,0,0.6);
-webkit-box-shadow: 0 0 4px rgba(0,0,0,0.6);
box-shadow: 0 0 4px rgba(0,0,0,0.6);
}
#buttons {
text-align: center;
}
.btn {
width: 99px;
height: 38px;
line-height: 32px;
margin: 0px 4px 0px 0px;
border: 1px solid #fff;
-moz-border-radius: 5px; /* Gecko browsers */
-webkit-border-radius: 5px; /* Webkit browsers */
border-radius: 5px; /* W3C syntax */
cursor: default;
text-align: center;
font-size: 14px;
color: #fff;
}
.btn_blue {
background-color: #5CACEE;
}
.btn_green {
background-color: #00EE00;
}
.hidden{ display:none }
</style>
</head>
<body>
<div id="camera">
<div id="contentHolder">
<video id="video" width="640" height="480" autoplay></video>
<canvas style="display:none;" id="canvas" width="640" height="480"></canvas>
</div>
<div id="buttons">
<button id="btn_snap" class="btn btn_blue">拍照</button>
<button id="btn_cancel" class="btn btn_blue" style="display:none;">取消</button>
<button id="btn_upload" class="btn btn_green" style="display:none;">上傳</button>
</div>
</div>
</body>
</html>
<script type="text/javascript">
// 添加事件監(jiān)聽器
window.addEventListener("DOMContentLoaded", function () {
// 獲取元素,創(chuàng)建設(shè)置等等
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function (error) {
console.log("Video capture error: ", error.code);
};
// 添加video 監(jiān)聽器
if (navigator.getUserMedia) { // 標(biāo)準(zhǔn)
navigator.getUserMedia(videoObj, function (stream) {
video.src = stream;
video.play();
}, errBack);
} else if (navigator.webkitGetUserMedia) { // WebKit 前綴
navigator.webkitGetUserMedia(videoObj, function (stream) {
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
}
else if (navigator.mozGetUserMedia) { // Firefox 前綴
navigator.mozGetUserMedia(videoObj, function (stream) {
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
else {
alert("瀏覽器不支持HTML5!");
//console.log('your browser not support getUserMedia');
}
document.getElementById("btn_snap").addEventListener("click", function () {
context.drawImage(video, 0, 0, 640, 480);
});
}, false);
</script>在logger后加?使得logger變成可選的屬性,這樣AnotherProductService在implements的時候就不必一定得加上logger這個屬性了
border-image繪制原理簡述
我是這樣理解的:共存在兩個九宮格,一個是邊框圖片,還有一個就是邊框本身,九個方位關(guān)系一一對應(yīng)。邊框本身的特性讓其變成了一個九宮格,四條邊框交錯,加上其圍住的區(qū)域,正好形成一個九宮格。邊框圖片則是通過圖片剪裁實(shí)現(xiàn)了九宮格。這是理解繪制原理的基礎(chǔ)。
1、調(diào)用邊框圖片
border-image的url屬性,通過相對或絕對路徑鏈接圖片。
2、邊框圖片的剪裁
border-image的數(shù)值參數(shù)剪裁邊框圖片,形成九宮格。
3、剪裁圖片填充邊框
邊框圖片被切割成9部分,以一一對應(yīng)的關(guān)系放到div邊框的九宮格中,然后再壓縮(或拉伸)至邊框(border-width或border-image-width)的寬度大小。
4、執(zhí)行重復(fù)屬性
被填充至邊框九宮格四個角落的的邊框圖片是不執(zhí)行重復(fù)屬性的。上下的九宮格執(zhí)行水平方向的重復(fù)屬性(拉伸或平鋪),左右的格子執(zhí)行垂直方向的重復(fù)屬性,而中間的那個格子則水平重復(fù)和垂直方向的重復(fù)都要執(zhí)行。
5、完成繪制,實(shí)現(xiàn)效果
const reducer = (state = {}, action) => {
switch (action.type) {
case 'chinese':
return {
...state,
...{msg: '這是Redux啊'}
}
case 'english':
return {
...state,
...{msg: "This is Redux"}
}
default:
return state
}
}
改成這樣
可以考慮在相應(yīng)的組件里import這個js,不過Typescript默認(rèn)是不允許導(dǎo)入js的,要在tsconfig里配置allowjs
我也遇到了這個問題,不知道題主解決了沒
css3的transform屬性可以做到
// data.js
export default function() {
return { ...whatever }
}
// page.js
import data from './data.js'
const Component = Vue.extend({ data })1、ajax2()這個請求的響應(yīng)結(jié)果會不會先于ajax1()這個請求先返回到瀏覽器端?還是這個會跟服務(wù)端語言的機(jī)制有關(guān)?比如java或者nodejs這類。
會。跟語言無關(guān)。
2、一個網(wǎng)絡(luò)相關(guān)的問題:這兩個請求會復(fù)用一個TCP連接嗎。還是分別對服務(wù)器建立兩個不同的TCP連接。(在HTTP1.1中,可以設(shè)置connection: keep-alive)
不會。是兩個連接。
簡單說react-navigation適合app,react-router適合網(wǎng)頁
傳遞的參數(shù)錯誤導(dǎo)致
自己頂一下,目前還沒找到好德解決辦法,但是我看有的小程序已經(jīng)有實(shí)現(xiàn)的了
if(e.target.nodeName.toLowerCase() === 'input'){ //如果目標(biāo)元素是input則跳出滑動事件
return false;
}
添加這段代碼后就可以了,攔截input標(biāo)簽 token權(quán)限驗(yàn)證啊,還有拒絕重復(fù)請求啊
我看了下,感覺是一個懶加載的方式~
如果是的話用 lazyload.js 試試~
你是不是忘記了不同設(shè)備的分辨率不同,不通設(shè)備的可視區(qū)定義的大小也不同,你的代碼不是兼容性的代碼,而且你能確定你測試的設(shè)備的devicePixelRatio就是1。建議你
參考一個https://github.com/amfe/lib-f...
已經(jīng)解決,通過對索引判斷從而達(dá)到分別賦值!
我猜測可能是布局問題 如果外層是{position:absolute;height:100%;width:100%},然后內(nèi)層是{-webkit-overflow-scroll:touch}這種寫法的話 可能有這個問題
引發(fā)原因:iOS系統(tǒng)的橡皮筋效果~
解決方案:~我也不大清楚,最后是換了一種寫法~
線上的項(xiàng)目?真機(jī)上覺對是需要授權(quán)的
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。