1. 程式人生 > >使用jquery的imagecropper外掛做使用者頭像上傳 相容移動端

使用jquery的imagecropper外掛做使用者頭像上傳 相容移動端

這裡寫圖片描述

相信大多的使用者系統裡都有使用者自定義頭像上傳這個功能,我這今天也在寫這塊,我將程式碼貼出來,方便以後大家借鑑。

實現方案:使用jquery的imagecropper.js外掛中裁剪功能來實現

程式碼量很少就沒有寫註釋了

css

<style>
body
{
    padding: 0;
    margin: 0;  
    height: 100%;
    background-color: #eee;
    font-size: 12px;
    color: #666;
}

a
{
    text-decoration: none;
    color
: #333
; }
a:hover { text-decoration: none; color: #f00; } #container { position: absolute; left: 20px; top: 20px; } #wrapper { position: absolute; left: 0px; top: 40px; } #cropper { position: absolute; left: 0px; top: 0px; border: 1px solid #ccc; } #previewContainer
{ position: absolute; left: 350px; top: 60px; } .preview { border: 1px solid #ccc; } #selectBtn { position: absolute; left: 0px; top: 0px; width: 119px; height: 27px; } #saveBtn { position: absolute; left: 150px; top: 0px; width: 67px; height: 27
px
; }
#rotateLeftBtn { position: absolute; left: 0px; top: 315px; width: 100px; height: 22px; padding-left: 25px; padding-top: 2px; } #rotateRightBtn { position: absolute; left: 225px; top: 315px; width: 50px; height: 22px; padding-right: 25px; padding-top: 2px; }
</style>

html

<body onload="init();">
    <div id="container">
        <a id="selectBtn" href="javascript:void(0);" onclick="document.getElementById('input').click();">選擇</a>
        <a id="saveBtn" href="javascript:void(0);" onclick="saveImage();">儲存</a>
        <input type="file" id="input" size="10" style="visibility:hidden;" onchange="selectImage(this.files)" />

        <div id="wrapper">
            <canvas id="cropper"></canvas>
            <a id="rotateLeftBtn" href="javascript:void(0);" onclick="rotateImage(event);">向左旋轉</a>
            <a id="rotateRightBtn" href="javascript:void(0);" onclick="rotateImage(event);">向右旋轉</a>

            <span id="status" style="position:absolute;left:350px;top:10px;width:100px;"></span>
            <div id="previewContainer">
                <canvas id="preview180" width="180" height="180" class="preview"></canvas>
                <span style="display:block;width:100%;padding-top:5px;text-align:center;">大尺寸圖片,180x180畫素</span>

                <canvas id="preview100" width="100" height="100" style="position:absolute;left:230px;top:0px;" class="preview"></canvas>
                <span style="position:absolute;left:230px;top:110px;width:100px;text-align:center;">中尺寸圖片 100x100畫素</span>

                <canvas id="preview50" width="50" height="50" style="position:absolute;left:255px;top:150px;" class="preview"></canvas>
                <span style="position:absolute;left:245px;top:210px;width:70px;text-align:center;">小尺寸圖片 50x50畫素</span>
            </div>
        </div>

    </div>
</body>

最後是js部分了

var cropper;

function init()
{   
    //繫結
    cropper = new ImageCropper(300, 300, 180, 180);
    cropper.setCanvas("cropper");
    cropper.addPreview("preview180");
    cropper.addPreview("preview100");
    cropper.addPreview("preview50");
    //檢測使用者瀏覽器是否支援imagecropper外掛
    if(!cropper.isAvaiable())
    {
        alert("Sorry, your browser doesn't support FileReader, please use Firefox3.6+ or Chrome10+ to run it.");
    }
}

//開啟本地圖片
function selectImage(fileList)
{
    cropper.loadImage(fileList[0]);
}

//旋轉圖片
function rotateImage(e)
{
    switch(e.target.id)
    {
        case "rotateLeftBtn":
            cropper.rotate(-90);
            break;
        case "rotateRightBtn":
            cropper.rotate(90);
            break;
    }
}

//上傳圖片
function saveImage()
{
    //選個你需要的大小
    var imgData = cropper.getCroppedImageData(180, 180);
    console.log("上傳了:"+imgData);
    //在這裡寫你的上傳程式碼
}

相關推薦

使用jquery的imagecropper外掛使用者頭像 相容移動

相信大多的使用者系統裡都有使用者自定義頭像上傳這個功能,我這今天也在寫這塊,我將程式碼貼出來,方便以後大家借鑑。 實現方案:使用jquery的imagecropper.js外掛中裁剪功能來實現 程式碼量很少就沒有寫註釋了 css <styl

ionic Camera外掛的使用(頭像)

根據官方文件的例子在app.module.ts中新增 import{Camera} from "@ionic-native/camera"; 並在providers中新增上Camera, 之後就可

jquery實現的ajax多圖移動

用thinkphp實現上傳的過程中碰到個很詭異的問題,一次傳6張圖片死活都不成功,折騰N久未果之後改為一次傳一張,但是使用者體驗太差,連續點6次是個人都得煩,而且無法保證使用者會乖乖的把六張圖都傳完。 後來瞭解到jquery可以輕鬆地實現ajax上傳,於是有了如下程式碼,僅

頭像前本地預覽功能的實現(相容ie8)

以下程式碼為頭像的上傳前預覽功能的實現,UI可自行發揮。可用form表單提交檔案,也可使用jquery.form.js外掛實現。下面demo中使用的form提交。 <!DOCTYPE html> <html> <head lang="en">

vue頭像裁剪外掛

專案中經常會遇到頭像裁剪上傳的問題,github上找了很多相關外掛,自己覺得下面這兩個外掛很不錯目前有一個不太友好的地方就是不能直接觸發檔案選擇,必須要通過元件內的元素點選觸發用這個外掛遇到一個問題就是,檔案上傳後的filename="unknown"

頭像外掛

現如今許多web專案都設計到Flash頭像上傳,這套程式碼是我用過許多次的效果特別好,jsp部分可以結合頁面的形式是彈框還是整個頁面都行,只需把這段程式碼加進去,Java部分我的這個例子是springmvc的,大家可以結合自己的框架和命名對程式碼相應的地方進行改動。 1:

js+java實現的頭像和裁剪,完美相容各種瀏覽器

1.前端剪下效果使用jquery+js+div+css實現 其中有個js圖片剪下外掛叫ImgCropper,吃外掛與jquery外掛一起使用會有bug,被我修改後能相容jquery了 如果需要了解更多關於ImgCropper外掛使用,請檢視原始碼或百度看例子吧 下面是我修改

頭像編輯器(flash頭像外掛

富頭像上傳編輯器是一款支援本地上傳、預覽、視訊拍照和網路載入的flash頭像編輯上傳外掛,可縮放、裁剪、旋轉、定位和調色等... 小巧的身材:檔案大小僅僅只有 48 KB,而新浪的頭像編輯器元件有 58.1 KB,更有甚者達 80 KB 之多以上。 漂亮的外觀:灰色系的外觀設計,適用於所有風格的站點。還可輕鬆

ASP 例項:頭像。檔案(圖片)頭像擷取(Jquery-ui外掛來選取擷取區域)

引入JS檔案:        <link href="../Css/themes/ui-lightness/jquery-ui-1.8.2.custom.css" rel="stylesheet" />     jquery-ui的css檔案     <s

頭像預覽

float 路徑 utf 圖片 func 亂碼問題 文檔 http public 這個可以測試頭像預覽上傳 需要先將圖片放到服務器 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt

移動web頭像實現截取和照片方向修復

trac 支持 隱藏 gre jquery 頭像 圖像加載 fun 僅供參考 實戰所需js包: jQuery、Jcrop、EXIF 本次實戰功能是在 app 中的 我的客戶 的客戶信息頁面中實現移動端web的頭像上傳,本次沒有實現圖像拖拽、縮放的觸摸事件功能(Jcro

圖片頭像

repl cnblogs $.ajax maxwidth 僅支持 .sh span attr 瀏覽器 簡介 在平時前端開發中,圖片上傳與頭像上傳是必不可少的。下邊我把上傳頭像做了一個小的例子,希望大家能夠使用。代碼是一年前寫的,對於新手老手來說,一看即懂。如果想

django頭像預覽功能

頭像頁面格式 註冊頁面 這裏可以看到有頭像按鈕, 頭像需求 有默認的頭像 點擊頭像就可以上傳圖片 上傳圖片後可以預覽 生成默認的頭像 上傳默認圖片到指定文件夾,然後把img標簽的src指定到這裏就可以, 點擊頭像上傳圖片 默認添加了&lt;input type="file"&gt;後會在

vue-cli 關於圖片頭像壓縮的插件

ade -c init 問題 scrip file image() idt 判斷圖片 安裝插件 exif-js 1 <template> 2 <div> 3 <div style="padding:20px

頭像 方法一:from表單 方法二:ajax

AD AS error 移動 tar 屬性 win 類型 pos 方法一:from表單 html 設置form表單,內包含頭像預覽div,內包含上傳文件input 設置iframe用來調用函數傳參路徑 <!--表單提交成功後不跳轉處理頁面,而是將處理

簡單的一個圖片預覽(web前端)

chrom 預覽 web前端 console fine 分享圖片 fire title right 轉載:點擊查看原文 在做web項目很多的時候圖片都是避免不了的,所以操作圖片就成了一個相對比較棘手的問題,其實也不是說很麻煩,只是說上傳然後直接預覽的過

實現微信公眾號微信頭像

這次我們做的專案需要實現一個微信公眾號頭像上傳並且剪裁的功能,實在沒有頭緒,之後通過網上搜索和自己的修改實現了一個適合我們這個框架的方法。 首先本次專案我們的頁面用的事velocity框架,頁面程式碼是: <li> <span class="ti

Android頭像實戰模擬

Android頭像上傳實戰模擬 在開發中頭像的上傳應該是必不可少的,話不多說上效果圖! 點選頭像彈出PopupWindow分別三個按鈕。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

在vue專案中實現註冊時改變頭像,同時實現將圖片的伺服器

 一.如何實現在註冊時點選頭像時實現更改圖片的操作      1.將img和input[type="file"]放在同一個div中,利用絕對定位,讓兩者擁有相同的大小,將input的預設樣式變為透明,讓img覆蓋的input之上;img中有一個屬性,acc

前端外掛-LayUI-----多圖片

效果預覽 引數列表  前臺程式碼 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=dev