用react模仿知乎的使用者頭像裁剪元件

2021-09-24 22:08:28 字數 1319 閱讀 6563

前段時間刷知乎的時候,更換換了下頭像,突然發現知乎頭像編輯器很簡潔酷炫,於是乎就用react嘗試模仿做乙個元件。

知乎上的這個是用canvas處理的,但是用div做也是可以,簡單的布局一下,其實就是用幾個div而已,但是呢,有個點我這裡的。陰影層下的跟清晰的是兩張,只是用top,left定位讓這兩張看起來像一張。

這個元件首先是要用到拖拽的功能,網上找的包感覺都不太合適,於是自己就簡單封裝了乙個,現在已經發布到npm(react-******-draggable),githup位址。

由於我封裝的拖拽元件可以限定的拖拽的區域,所以就可以很容易的動態設定,拖拽顯示的無非就是大小的區域,初始化的時候,規定寬或者高是100%,高度或者寬度自適應,因為為長方形的時候,有橫向的和豎向的,我們可以一開始獲取的寬高,判斷是橫向的還是豎向的

除此之外,還要獲取到的真實大小的size,因為要是提交的使用總不能把,『100%』,『auto』這些提交到後端。

至於為什麼加上要用80(的中點)去乘於比值的差(preratio是前一次拖拽的比例)是為了讓放大縮小是以中心的位置為原點,這樣視覺效果會好看很多。此外,這裡還處理了一些特殊的情況,比如說,縮放的時候,的位置可能會不在可視區的區域內,所以要做一些限制,當left的絕對值小於的寬度時,就是偏離了可視區域,這裡要做一下修正。

如果想使用這個元件可以clone下來,參考demo中的例子,把lib下的檔案複製到你的專案中就可以使用了(這個元件已經打包好了),但是出現問題作者概不負責- -!您也可以基於作者的基礎再做修改(src資料夾下),每次修改記得npm run build(npm start 是打包demo) 打包下哦!

這個小組件已經上傳到githup上了,這裡是demo的位址,這裡是githup的位址,歡迎提issue!路過希望幫忙點個star哦!

日積月累,一起成長!

原文

步步分析爬取知乎使用者頭像

知乎是個練習爬蟲的好地方,可以找到很多資源,還能挑戰一下反爬蟲機制。剛開始不懂得ajax的時候真的拿這些動態載入的網頁沒有辦法,只好退一步,用selenium chromedriver寫一些簡單的程式,這樣做雖然簡化了開發過程,但是總是覺得效率很低,而卻方式不太優雅,只是呼叫瀏覽器去做著做那,遇到異...

用scrapy框架爬取映客直播使用者頭像

1.建立專案 scrapy startproject yingke cd yingke 2.建立爬蟲 scrapy genspider live 3.分析網頁的response,找到響應裡面資料的規律,並找到的位置,通過response.xpath 獲取到 4.通過在pipline裡面進行資料的清洗...

半自動抓取知乎使用者的微博位址(python)(1)

最早的起因是有一次想看看乙個微博好友是否在知乎上,但知乎提供了通往微博的介面,而微博沒有反向的介面,所以無異 撈針,故而作罷。最近學習python,學了點爬蟲,忽然又想起這茬事兒,就想能否寫個程式把一些使用者的使用者名稱微博位址 如果有的話 記錄下來呢?那我到時候只要搜尋微博位址就行了。那我想先模擬...