欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS仿flash上傳頭像效果實(shí)現(xiàn)代碼

 更新時(shí)間:2011年07月18日 00:59:58   作者:  
flash上傳頭像多不勝舉了,可JS仿flash的見的不多,也是工作需要,就試著寫寫看!不料,設(shè)想還真的可行

先看效果圖(在FF下):


下面是我整個(gè)的思路:
一、用ajaxFileUpload.js異步上傳圖片。這個(gè)不用多說(shuō)了,挺簡(jiǎn)單的東西。
二、div拖拽用jquery-ui。這個(gè)也不多說(shuō)了。
三、上傳過(guò)圖片的處理。
  編輯容器是300*300,如果圖片不在300*300之內(nèi),這里會(huì)生成一個(gè)maxHeight=300,maxWidth=300的縮略圖,
用于設(shè)置編輯容器的背景,如果原文件為123.jpg,這里生成的文件為123.jpg.view.jpg,當(dāng)然,文件123.jpg.view.jpg可能不會(huì)生成!
返回?cái)?shù)據(jù)為{ result:" + result + ",size:" + size + ",msg:\"" + msg + "\",w:" + ww + ",h:" + hh + "}"。
result 是1或0,表是否上傳成功,
size 是縮放比率,默認(rèn)為1,有縮略圖時(shí)為縮小的倍數(shù),如果縮略到原來(lái)的3/4,size為0.75
msg 如果result=1,msg是文件地址,如果result=0,msg是錯(cuò)誤信息
w,h是原圖的寬高,如果有縮略圖,則為縮略圖的寬高。
四、選擇圖片區(qū)域
  頭像目標(biāo)大小為175*175,編輯時(shí)在右邊顯示。目標(biāo)頭像要隨選區(qū)的移動(dòng)而移動(dòng),這個(gè)可以定位背景要實(shí)現(xiàn),但它還要隨選區(qū)的大小變化而變化,這個(gè)用背景恐怕是難以實(shí)現(xiàn)了吧!
反正我是不知道怎么做,所以這里選擇用真正的圖片,可圖片從哪來(lái)呢?從服務(wù)端來(lái)!想必圖片驗(yàn)證碼大家都熟悉,這里的真正圖片就是這樣得來(lái)的。在選區(qū)drag和resize后(當(dāng)然也可
在進(jìn)行時(shí)請(qǐng)求,效果更動(dòng)態(tài),不過(guò)嘿嘿...),即 stop時(shí)要向服務(wù)器請(qǐng)求顯示的圖片,請(qǐng)求數(shù)據(jù)要包含size,即上面得到的0.75,還有選區(qū)的位置和大小。
到服務(wù)器后你會(huì)發(fā)現(xiàn)選區(qū)的位置(x,y)和大小(w,h)是針對(duì)縮略圖的,這時(shí)size就有用了,由size縮略,由size還原,真是解玲還需系玲人啊,把x,y,w,h都除以size,得到的位置和大小便對(duì)應(yīng)到原圖上了。于是乎,剪切吧!返回吧!好,剪切,返@#!,暈,這里還不能返回呢!因?yàn)榧羟羞^(guò)后你也不知道大小是不是符合
我們的目標(biāo)大小(175*175)啊! 所以這里不能急著返回給用戶看,還要做最后的包裝,把大的壓縮,把小的放大,統(tǒng)統(tǒng)成175*175達(dá)標(biāo)后才可返回。于是,
頁(yè)面上就可以看到我們選區(qū)的頭像了~
五、確定保存
  這里邏輯就簡(jiǎn)單多了,選擇圖片區(qū)域時(shí)我們生成了圖片輸出到頁(yè)面,這里我們可以用同樣的方法生成圖片,保存就OK了,這里還有一個(gè)清理操作,
最終的123.jpg是沒(méi)用的,123.jpg.view.jpg也是沒(méi)用的,有用的是我們借助123.jpg.view.jpg從132.jpg中抽離出來(lái)的456.jpg!
六、整個(gè)功能放在一個(gè)html里,哪里用,就load到哪里!
js:

復(fù)制代碼 代碼如下:

$(function() {
$("#divUp").load("uploadAvatar.htm?n=" + Math.random());
})
function OnAvatarUploaded(file) {
$("#img").attr("src", file + "?n=" + Math.random()); //防止緩存
}

html:
復(fù)制代碼 代碼如下:

<div style="height: 500px; clear: both; margin: 80px auto; width: 800px;">
<div style="width: 175px; height: 175px; float: left; border: 1px solid #ccc;">
<img src="" id="img" style="width: 175px; height: 175px" />
</div>
<div id="divUp" style="width: 520px; float: left; margin-left: 20px">
</div>
</div>

*******************
總體思路及步驟到這就完了。
功能沒(méi)有flash的強(qiáng)大,但一般的上傳頭像也可以滿足了,想生成頭像縮略圖也很簡(jiǎn)單,下面會(huì)附源碼,看一下就知道在哪加了。
handler里代碼有點(diǎn)亂,沒(méi)有整理,不好意思啦!
AvaterUpload_jb51.rar

相關(guān)文章

  • 給before和after偽元素設(shè)置js效果的方法

    給before和after偽元素設(shè)置js效果的方法

    本文通過(guò)實(shí)例給大家介紹給before和after偽元素設(shè)置js效果的方法,對(duì)js偽元素相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • prefers-color-scheme設(shè)置檢測(cè)系統(tǒng)主題色

    prefers-color-scheme設(shè)置檢測(cè)系統(tǒng)主題色

    這篇文章主要為大家介紹了prefers-color-scheme設(shè)置檢測(cè)系統(tǒng)主題色實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 原生JS封裝Ajax插件(同域、jsonp跨域)

    原生JS封裝Ajax插件(同域、jsonp跨域)

    這篇文章主要為大家詳細(xì)介紹了原生JS封裝Ajax插件,為大家介紹不同域之間互相請(qǐng)求資源的跨域,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • js 控制頁(yè)面跳轉(zhuǎn)的5種方法

    js 控制頁(yè)面跳轉(zhuǎn)的5種方法

    這篇文章介紹了js 控制頁(yè)面跳轉(zhuǎn)的5種方法,有需要的朋友可以參考一下
    2013-09-09
  • 基于JS實(shí)現(xiàn)移動(dòng)端左滑刪除功能

    基于JS實(shí)現(xiàn)移動(dòng)端左滑刪除功能

    最近做個(gè)項(xiàng)目,需要實(shí)現(xiàn)移動(dòng)端左滑刪除功能,當(dāng)時(shí)js代碼將網(wǎng)上找的進(jìn)行刪減優(yōu)化,下面通過(guò)本文給大家分享基于JS實(shí)現(xiàn)移動(dòng)端左滑刪除功能,感興趣的朋友一起看看
    2017-07-07
  • echart在微信小程序的使用簡(jiǎn)單示例

    echart在微信小程序的使用簡(jiǎn)單示例

    最近公司的項(xiàng)目中需要在小程序內(nèi)使用echarts組件來(lái)展示數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于echart在微信小程序的使用方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • javascript 中模板方法單例的實(shí)現(xiàn)方法

    javascript 中模板方法單例的實(shí)現(xiàn)方法

    這篇文章主要介紹了javascript 中模板方法單例的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • 將form表單中的元素轉(zhuǎn)換成對(duì)象的方法適用表單提交

    將form表單中的元素轉(zhuǎn)換成對(duì)象的方法適用表單提交

    這篇文章主要介紹了如何將form表單中的元素轉(zhuǎn)換成對(duì)象,需要的朋友可以參考下
    2014-05-05
  • JavaScript使用Fetch的方法詳解

    JavaScript使用Fetch的方法詳解

    Fetch?API提供了一個(gè)JavaScript接口,用于訪問(wèn)和操縱HTTP管道的部分。它還提供了一個(gè)全局?fetch()方法,該方法提供了一種簡(jiǎn)單,合理的方式來(lái)跨網(wǎng)絡(luò)異步獲取資源。本文將詳解JS如何使用Fetch,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • js中的preventDefault與stopPropagation詳解

    js中的preventDefault與stopPropagation詳解

    本篇文章主要是對(duì)js中的preventDefault與stopPropagation進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01

最新評(píng)論