PIXNET Logo登入

布萊恩的創業小窩的部落格

跳到主文

歡迎光臨布萊恩的創業小窩在痞客邦的小天地

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 6月 18 週二 201919:13
  • 除了Python和Java,電影裡還藏著哪些程式語言?(下)

除了Python和Java,電影裡還藏著哪些程式語言?(下)

 
另一個程式語言Java又藏在哪個電影裡?今天繼續給你驚喜!
 
 
殺千刀重出江湖:Java
 
▲ 《殺千刀重出江湖中》中出現的 Java 程式語言
 
 
這部電影號稱好萊塢史上最白爛的動作片,雖有一班大咖演員,卻被眾多影評稱為「爛片的極致」!片中老套的劇情、俗爛的對白,大肆使用血漿而備感廉價的流血場面,某種意義上體現了 B 級電影的極致。
這部粗糙結合科幻風的電影也小露了一下程式碼:蜜雪兒‧羅德里奎茲飾演男主角的好搭檔「Luz」,在片中使用一段 Java 程式碼執行一個簡單的 TCP server 任務,以當前的日期和時間回應客戶端。
 
魔鬼終結者:Apple II 的 CPU 「6502」 組合語言
 
▲ 《魔鬼終結者》中出現的 Apple II 的 CPU 「6502」 組合語言
 
 
還記得在電影《魔鬼終結者》系列中出現的各種機器人嗎?這部對當今的科幻電影產生了各種影響的經典之作,早在第一集上映的 1984 年就已經有各種創舉了,像是現今科幻電影都很喜歡的秀出程式碼,魔鬼終結者當然是不會少的囉!
在最早的《魔鬼終結者》第一部中,我們透過由阿諾史瓦辛格飾演的機器人終結者 「T-800」 看出去,可以看到展示了一段 MOS 6502 的組合語言程式碼。
MOS 6502 是 1975 年由 MOS 科技所研發的8位元微處理器,剛問世時是當時效能最強的 8 位元 CPU,而 Apple II 的採用使 6502 成了廣為人知的 CPU。而在機器人眼中的程式碼,正是從 Apple II 複製過去的。
 
龍紋身的女孩:MySQL
 
▲ 《龍紋身的女孩》中出現的 MySQL 語言
 
 
這部充滿懸疑、鬥智、暴力又刻畫出人性病態扭曲的電影《龍紋身的女孩》,女主角莎蘭德便是個經常入侵他人電腦的神秘駭客。這部電影獲得各方好評,但其實有一幕或許會讓熟悉 MySQL 語言的觀眾感到奇怪!
電影中有一幕是莎蘭德使用筆電以 MySQL 語言駭入瑞典警察局的資料庫,想追查受害人。而如果將她用的 left join 關鍵字的 SQL 語言整理出來,可以得到一個輸出結果訊息,重構後會發現她用 outer-join 的方式連結關鍵字和被害人資料。
知道 MySQL 語言的觀眾可能會驚訝,為什麼要使用這樣的文字過濾方式呢?因為 MySQL 中是有 like 語法的。更奇怪的是,輸出結果中居然沒有姓名分別以 R、L 開頭的受害人。
究竟是編劇沒有做好 MySQL 的功課、還是女主角的駭客功力還不到位卻有好運氣呢?

推薦閱讀:
前端工程師也該會的後端:MySQL 的 DDL DML DQL DCL


(繼續閱讀...)
文章標籤

布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(132)

  • 個人分類:各式程式語言讓你挑!
▲top
  • 6月 17 週一 201917:10
  • 除了Python和Java,電影裡還藏著哪些程式語言?(上)

除了Python和Java,電影裡還藏著哪些程式語言?(上)

 
 
 
 
 
 
 
原來電影裡除了藏著Python語言,還有C語言!今天揭曉是那些電影!
 
常看電影的朋友肯定對駭客角色不陌生,雖然大部分電影中對駭客技術都沒有詳細解釋,但也有不少考據細節的電影,就算是一閃而過的程式碼也都是有根據的喔!像是 Java 、 Python 、 MySQL 和 C 語言等熱門語言,不只是電影中的常客,也是求職市場中最夯的程式語言!
 
以下就分析 5 部出現過程式語言的電影吧!咦,有一部賣座大片的程式語言還寫錯了?
鋼鐵人:C 語言
 
▲ 《鋼鐵人》中出現的 C 語言
 
 
作為漫威英雄代表之一的鋼鐵人,以高科技打造的鋼鐵裝甲想必讓許多粉絲印象深刻,小勞勃道尼幽默風趣的詮釋也讓「托尼‧史塔克」成為許多影迷最喜歡的超級英雄。
而在最近上映的《復仇者聯盟4:終局之戰》中,陪伴我們十年的鋼鐵人也迎來結局,其犧牲自己、拯救全宇宙的氣概,想必讓粉絲們感動又不捨啊!看完是不是很想馬上重溫《鋼鐵人》系列呢?
而回顧鋼鐵人1,托尼史塔克在綁匪的洞穴中第一次啟動他所設計的人工心臟,使用的就是 C 語言代碼──說是 C 語言讓鋼鐵人誕生也不為過啊~
這段代碼還有個不為人知的冷知識:其實這段代碼來自於樂高積木的硬體下載程式。
電影中使用這段代碼,可能是指鋼鐵俠要下載一套硬體描述語言;或是將硬體描述語言上傳到樂高積木的控制系統中。無論哪個,都表示鋼鐵俠的誕生跟樂高積木有關。
 
無敵破壞王2:網路大暴走:Python 語言
 
▲ 《無敵破壞王2:網路大暴走》中出現的程式語言 Python
 
 
《無敵破壞王》續集《網路大暴走》,正如片名,劇中反派是個能癱瘓全網路的病毒!這個病毒能自動掃描程式的漏洞且不斷複製,一旦發現其他目標,又能迅速散播,不需要任何人為干預,就能自動複製和感染。
在病毒尋找感染目標的畫面中,我們可以看到 Python 程式碼。
沒錯,這個能自我繁殖、自動利用軟體安全性漏洞的病毒,正是使用經常運用於 AI人工智慧的領域上的 Python 語言寫的!不得不讓人聯想到,人類設計出能自動學習、模仿並完成人類行為的AI,有天會不會也會像片中病毒一樣,癱瘓且滅絕全人類呢?
 
先不要離開,請點此接續看「殺千刀重出江湖」、「龍紋身的女孩」、「魔鬼終結者」的程式碼!
(繼續閱讀...)
文章標籤

布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(116)

  • 個人分類:各式程式語言讓你挑!
▲top
  • 6月 14 週五 201911:41
  • 輕鬆入門前端工程師的HTML5課程(10)SVG介紹

輕鬆入門前端工程師的HTML5課程(10)SVG介紹

HTML5早就沒在用點陣圖了!今天介紹它的SVG向量圖給你認識~~
 
何謂 SVG?
因為以往網頁設計常使用的圖片檔如 jpg、png、gif 等都是點陣圖模式,但是時下流行的 RWD 響應式網頁可隨著螢幕調整網頁布局,點陣圖隨著螢幕大小縮放,就會有模糊失真的疑慮,因此,HTML5的向量的 SVG 確實是不錯的解決方法。
SVG(Scalable Vector Graphics,可縮放向量圖形)是 W3C 制定的開放性網路標準之一,此圖片格式在網頁中,能以向量格式呈現圖片。設計師可先在 Adobe Illusrator 中畫好向量圖形,並存成 SVG 檔,再放在網頁中。運用方式就跟 .jpg、.png、.gif 等圖片檔一樣,但不同的是 SVG 檔不會因尺寸的改變而失真,日後要修改時也可直接開啟檔案修改,相當方便。
那麼,如何置入 SVG 影像到網頁中?
如同 .jpg、.png、.gif 的方式,SVG 圖檔使用 img 標籤被置入到 HTML5 檔中,如下方所示:
<img src="image.svg" alt="" height="300" />
使用 SVG 畫圖形
要用 SVG 畫出簡單的圖形,首先前端工程師要使用 SVG 標籤製作「畫布」。要賦予其畫布的長寬 (width、height) 屬性,如下例所示:
<svg width="1000" height="1000"></svg>
在這邊,我們先舉「畫圓形」為例,如下所示:
<svg width="2000" height="2000">
<circle cx="80" cy="80" r="50" fill="magenta" />
</svg>
 
  • - cx 圓心之x軸座標

  • - cy 圓心之 y 軸座標

  • - r 半徑

  • - fill 填滿色彩

  • - stroke 圓形外框

  •  
    結果如下所示:
    See the Pen svg circle by Tedutw (@Tedutw) on CodePen.
    同樣的道理, SVG 也可以用來「畫方形」。標籤中的「circle」要改成「rect」,半徑與圓心的屬性都要換成長與寬,原始碼與結果如下所示:
    See the Pen svg rect by Tedutw (@Tedutw) on CodePen.
    同理, SVG 標籤改成「line」,x1 與 y1 定義第一點的座標、x2 與 y2 定義第二點的座標,原始碼與結果如下所示:
    See the Pen svg line by Tedutw (@Tedutw) on CodePen.
    三邊以上的摺線,前端工程師可用 SVG 「polyline」(多點折線)標籤,並為五點定義座標分別為 10 10, 60 60, 110 10,160 60 與 210 10 原始碼與結果如下所示:
    See the Pen svg polyline by Tedutw (@Tedutw) on CodePen.
    SVG 繪製橢圓形 (ellipse) ,標籤屬性的下法與上述的「circle」類似,差別在於水平與垂直的半徑可以分別使用「rx」與「ry」來定義,原始碼與結果如下所示:
    See the Pen svg ellipse by Tedutw (@Tedutw) on CodePen.
    三邊以上的形狀,用 SVG 繪製多邊形 (polygon) 的原始碼與結果如下所示::
    See the Pen svg polygon by Tedutw (@Tedutw) on CodePen.
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(101)

    • 個人分類:前端工程師就是我!
    ▲top
    • 6月 13 週四 201923:17
    • 電影機械公敵快要實現了?這金屬樂團摻入人工智慧元素表現給你看!


    電影機械公敵快要實現了?這金屬樂團摻入人工智慧元素表現給你看!


    說到關於人工智慧電影,機械公敵肯定對你來說不陌生!今天AI也跟音樂做結合,一起帶妳看看未來的模樣!


     



    前衛金屬樂團Dream Theater在今年的新歌「Paralyzed」的MV中,預言以AI人工智慧主導的未來

     


    在 AI人工智慧主導我們未來的產業之前,現在已有許多小說、音樂、電影等藝術作品,很多都是以 「AI人工智慧」為創作主題。來自美國、由柏克萊 (Berklee) 音樂學院高材生主導、也是當今重金屬音樂界中最具開創性、最具影響力的前衛金屬樂團 Dream Theater 在 2019 發行的第 14 張錄音室專輯 「Distance Over Time」,便是以即將成為主流的 AI人工智慧機器人為主題、以未來為時空背景,來創作音樂與影像。

     



    Dream Theater 以 AI人工智慧為主題,貫穿 2019 年發行的第 14 張錄音室的專輯 「Distance Over Time」

     


    Python課程的同學介紹道︰此專輯裡的主打曲目之一「Paralyzed」,它被拍成音樂錄影帶,以AI 機器人拿著人類骨骸為開場。影片中就是在敘述:不久的未來, AI人工智慧機器人將會在沒有人類的狀況下,持續進化,並且持續生產出更多的機器人。搭配著鍵盤手 Jordan Rudess 與吉他手 John Petrucci  流暢又有淡淡哀傷的小調音色此起彼落、2011 年新加入的鼓手 Mike Mangini 沉重的雙大鼓交錯、還有主唱 James LaBrie 的渾厚歌聲,這個樂團,完美地呈現了AI人工智慧為主流產業的未來。
     
    當代最具影響力的前衛金屬樂團 Dream Theater 目前的 line-up 包含主唱 James LaBrie (中)、吉他手 John Petrucci (右一)、貝斯手 John Myung (左二)、鍵盤手 Jordan Rudess (左一) 與鼓手 Mike Mangini (右二)。(圖片網址:https://metalheadzone.com/wp-content/uploads/2019/03/dream-theater-2019.jpg)
     
    這張專輯推出後也在音樂圈子中獲得好評:AllMusic 4顆星、Metacritic 也給予 82 的高分評價,在 2019 年 2 月 22 日發行的當天,iTunes 就把這張專輯列入百大最佳專輯榜中。
    而該專輯的封面,是 AI 人工智慧機器人的手握著人類頭骨的畫面,符合著專輯主題 「Distance Over Time」 。想不到這樣的創意被美國的紐約時報抄襲,該報社發行的雜誌,其中一期封面也是機器人的手握著人類頭骨。可見人工智慧成為產業的趨勢已是不爭的事實,將會主導著各行各業的未來。若你也想在未來卡位 AI 產業,先熟悉 Python 程式語言吧!
     

    Imitation is the highest form of flattery, @nytimes 😄 pic.twitter.com/U5HIzsM441


    — Dream Theater (@dreamtheaternet) November 26, 2018

     
     
     
     
     HERE!延伸閱讀看過來:





    懂時事就是要上Python課程:谷哥心裡到底打什麼算盤?(下)




    令人嘖嘖稱奇!Python課程帶來科技進步讓你看不到車尾燈!




    啥咪?!機器人跟你搶工作!免驚驚, 來上Python課程不被AI取代

     暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~




    揮別多年來網路行銷課程慣例,讓主關鍵字發揮效用


    程式語言夯!大家都在上Java課程了,你確定你可以不用上嗎?


    達內課程先就業再付款- 中時電子報
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(12)

    • 個人分類:IT人的數位生活
    ▲top
    • 6月 12 週三 201904:57
    • 人工智慧的功用終於和電影結合!快看它幫了電影產業多大的忙!

    人工智慧的功用終於和電影結合!快看它幫了電影產業多大的忙!

     

    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(140)

    • 個人分類:IT人的數位生活
    ▲top
    • 6月 11 週二 201911:28
    • 全靠這人工智慧!搞定垃圾分類只要三秒啊!!

    全靠這人工智慧!搞定垃圾分類只要三秒啊!!

     
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(168)

    • 個人分類:各式程式語言讓你挑!
    ▲top
    • 6月 10 週一 201901:22
    • 常常聽到的Java,原來真的是咖啡名字!!?

    常常聽到的Java,原來真的是咖啡名字!!?

    今天就分享給你Java和其他你常聽到的那些程式語言名稱的由來,這樣又讓你跟程式語言更靠近~
     
    Python-是劇團,不是大蟒蛇
     
    圖中身穿「人生苦短,我用Python」T恤的先生為 Python 程式語言的創始人Guido van Rossum
     
    隨著 AI 世代即將到來,Python 程式語言也越來越受歡迎。這款程式語言於 1991 年第一次公開發行。
    1989 年,荷蘭的程式設計師吉多范羅蘇姆 (Guido van Rossum) 為了打發聖誕節假期的空檔時間,就寫了以 ABC 程式語言為基礎的另一套程式語言。命名時,吉多想要為這個語言起一個「精簡、獨一無二、又帶一些神秘感」的名字。然後他從一個叫做「Monty Python(蒙提巨蟒)」的劇團找到靈感,將這套程式語言以該劇團的團名 Monty Python 的 Python 來命名。這個來自英國的劇團,在當時的歐洲可說是非常活耀、以超現實的荒誕喜劇聞名。當然,吉多本身就是這個荒誕劇團的大粉絲!

     



     


    而 ABC 語言吉多參與研發的一款程式語言。就吉多本人看來,ABC 語言是非常優美、強大,是專門為了程式設計的初心者而設計的教學語言。但是 ABC 語言並沒有成功,他認為是因為「非開放」而導致的。因此,吉多決心在 Python 語言避免重蹈覆轍,完美結合了 C 、Unix shell 和其他語言的使用習慣,也讓這個語言時至今日,仍有強大的影響力!
    20年後的今天,吉多仍是 Python 的主要開發者,決定整個 Python 語言的發展方向,Python 社區經常稱呼他是仁慈的獨裁者。因為他仍舊關注 Python 的開發進程,並在必要的時刻做出決定。Python 的設計哲學是「優雅」、「明確」、「簡單」;而Python 開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。在設計 Python 語言時,如果面臨多種選擇,Python 開發者,大部分都會避開花俏的語法,盡可能選擇精簡明確的語法。這些準則被稱為「Python 格言」。
     
    Java-工程師最愛的灣區皮爺咖啡
    舊金山灣區最知名的連鎖咖啡店Peet's Coffee,連星巴克的三個創始人都曾在此拜門學藝 (圖片出處:Flickr)
     
    上個世紀 90 年代初期,美國昇陽電腦公司 (Sun Microsystems, Inc.) 推出綠色計畫 (Green Project) ,著手於發展消費型電子產品 (Consumer Electronics),當時他們所使用的語言是 C、C++、及 Java語言的前身「Oak」。後來因為律師說「Oak」這個名字已經被註冊使用了,他們必須為這個程式語言另啟新的名字才行。經過一連串的會議表決,還有一小張列著待選名字的表格 (根據這家公司的律師所述),表格上的名字除了 Java,還有 Silk、DNA 等聽起來很文青的名字。Java 這個名字當時是哪個人提議的已不可考,但昇陽公司的工程師們普遍都很喜歡喝公司附近一家名為「Peet's Coffee (皮爺咖啡),舊金山灣區最知名的連鎖咖啡店,連星巴克的三個創始人都曾在此拜門學藝)」的咖啡。因此不意外地,意思為「爪哇咖啡」的 Java 被選為此款程式語言的名字。

     



     


    Lovelace-向第一位女性工程師致敬

     



     


    Ada Lovelace 被認為是世界上第一位女性工程師,美國國防部於 1980 年製作的一個新的電腦程式語言—Ada Lovelace 就是以她的名字命名。為了記念英年早逝的 Ada,還以她的出生年設立了編號「MIL-STD-1815」。
    Ada Lovelace 是名詩人拜倫的唯一婚生子,但是 Ada 從來沒見過她父親;母親為英國貴族-溫特沃斯女爵。愛達母親因為不希望 Ada 步上父親放浪不羈的後塵,致力栽培 Ada 的數學、邏輯等科目。藉著她的家庭與教育環境,她認識許多鼎鼎有名的科學、文學家,如電學之父-法拉第和作家狄更斯等,十幾歲時更認識了被後世譽為「電腦之父」的查爾斯·巴貝奇 (Charles Babbage),並參與了巴貝奇的分析機設計。
    在 1842 到 1843 年間,她翻譯了一篇義大利軍事工程師費德里科·路易吉闡述分析機的文章,並加上詳盡的筆記。Ada 的筆記裡,包含了公認的第一段電腦程式-一段分析機用的演算法,這對早期電腦發展史非常重要。此外,當巴貝奇等同時代學者,只著眼於電腦的數學運算力時,Ada 已經預見了電腦廣泛應用的未來。可惜 Ada 在 1852 年因子宮癌逝世,享年36歲。
     
    另一套Lovelace-豔星的名字
    而在上述的史上第一位女工程師 Ada Lovelace 女士逝世約 126 年後,耶魯大學的研究生 David Gelernter 正在思考如何為他編寫的程式語言命名時,聽到了關於了 Lovelace 的生平。此時 David 馬上聯想到了主演「深喉嚨」的情色女星的姓氏也是 Lovelace,於是 David 就用該豔星的名字 Linda 命名了這套程式語言。
     
     
    HERE!延伸閱讀看過來:



    讓你實現目標與夢想的技術實力-Java課程





    懂時事就是要上Python課程:谷哥心裡到底打什麼算盤?(上)

    學會Java程式語言不愁找不到工作!







    網路行銷課程的SEO教學說:SEO有黑帽和白帽,你知道嗎?



    哪個程式語言能像瑞士刀一樣百變實用?讓Python課程告訴你答案!



    暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

    達內教育開幕 培養台灣IT人才進入全球企業


     
     
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(1,224)

    • 個人分類:各式程式語言讓你挑!
    ▲top
    • 6月 06 週四 201923:56
    • 輕鬆入門前端工程師的HTML5課程(9)地理位置定位

    輕鬆入門前端工程師的HTML5課程(9)地理位置定位

     
    你知道該如何用HTML5取得用戶所在位置嗎?今天學會馬上就熟能生巧啦!
     
    首先,先了解:什麼是地理位置定位 (Geolocation) API?
    在 HTML5 網頁裡,前端工程師可利用地理位置定位 (Geolocation API) 來取得用戶的地理位置,對於具有GPS(如智慧型手機等)的設備,地理位置會更為準確。
    但基於隱私上的考量,這功能必須要獲得使用者的同意才可使用。
    用法
    使用 Geolocation 的主要方法是 getCurrentPosition,可以讀取到用戶設備的當前地理位置。語法如下:
    (※以下的語法通通都是寫在 Javascript裡)

    navigator.geolocation.getCurrentPosition();
    參數:
  • showLocation(必要項目):是個函式,於瀏覽器成功判斷出位置後,開始呼叫。

  • ErrorHandler(非必要):是另一個函式,於發生問題,瀏覽器無法判斷出位置時才呼叫。

  • options(非必要):此參數能讓我們自訂geolocation的運作方式。

  •  
    呈現數據
    地理位置定位 (Geolocation API) 可以使用兩種方式呈現:Geodetic(地理測量) 與 Civic(城市):
  • Geodetic (地理測量) :直接呈現經緯度座標表示位置、水平線上的距離(如公尺) 表示高度等

  • Civic (城市) :則用能使大多數人理解的方式呈現:城市名表示位置、樓層數表示高度等

  •  


    屬性
    Geodetic
    Civic


    Position (位置)
    25.0,121.6
    Taipei (台北)


    Elevation (高度)
    508 meters (508公尺)
    101th floor (101樓)


    Heading (以360度表示的方向)
    234 degrees (234度)
    City Centre (市中心)


    Speed (速度)
    5km/h (時速5km)
    Walking (步行)


    Orientation (手機的擺放方向)
    45 degrees (45度)
    North-East (東北)


     
     HERE!延伸閱讀看這裡:





    輕鬆入門前端工程師的HTML5課程(7)瀏覽器儲存簡介





    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-上

    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-下






      

    Java課程讓你不完美履歷也變完美!


    中國達內教育與知名科技公司合作,引領數位化職業教育風潮




    暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

    人人都能是工程師!台灣 IT 培訓中心推「找到工作再付學費」專案,要試試嗎?


     
     
     
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(30)

    • 個人分類:前端工程師就是我!
    ▲top
    • 6月 05 週三 201907:49
    • 輕鬆入門前端工程師的HTML5課程(8)拖曳元素-下

    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-下

     
    HTML5拖曳元素的學習,怎能虎頭蛇尾!看完這篇才是學得完整呀!
    數據傳輸 DataTransfer
    關於拖曳動作,它的目的是為了對來源元素和目標元素做操作。而為了完成整個操作,就需要在來源元素和目標元素間傳輸數據。在 HTML5 中,我們透過 Javascript 的 DataTransfer 完成數據傳輸。
    我們在上例的 dragstart 時,就設置需要傳輸的數據,在 drop 中獲取需要的數據。 event.dataTransfer 提供了兩個主要函數:
     
  • setData(format, data):用於添加數據,一般 format 對應於 MIME 類型字符串,常見的有 text/plain、text/html 及 text/uri-list 等,但同時也可以是任意自定義的類型;不幸的是, data 只能是 string 或 file。

  • getData(format):用於獲取數據。

  •  
    現在,我們的目的是要將 「Drag Me」元素,放到其它藍色的目標元素中,如此就需要傳輸它的 ID ,通過下面的 Javascript 語法來實現:
    draggable.addEventListener('dragstart',(ev)=> {
    ev.target.style.opacity = “。5” ;
    //設置ID
    ev.dataTransfer.setData('text / plain',ev.target.id);
    });
    dropzones.forEach((dropzone)=> {
    dropzone.addEventListener('drop',(ev)=> {
    ev.preventDefault()
    ev.target.style.borderStyle = 'solid' ;
    //獲取ID const sourceId = ev.dataTransfer.getData('text / plain')
    ev.target.appendChild(document .getElementById(sourceId)) })});

     
  • 在 dragstart 時,透過 setData 將 ID 放入 DataTransfer 中

  • 在drop事件中,透過 getData 獲取元素 ID ,並透過 appendChild 加入到藍色的目標元素中。

  •  
    結果如下:
    See the Pen HTML 5 Drag and Drop by Tedutw (@Tedutw) on CodePen.
    到這裡,這一個 HTML5 Drag&Drop API 的基礎範例教學就結束了。
    為了實現這麼一個簡單的拖曳 API 事件,就有 6 個事件要操作。因此,我們從前端工程師入門教學的角度來說,HTML5 Drag&Drop API 的實現,其實並不容易。
     
      HERE!延伸閱讀看這裡:




    輕鬆入門前端工程師的HTML5課程(7)瀏覽器儲存簡介





    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-上

    輕鬆入門前端工程師的HTML5課程(9)地理位置定位




      前端工程師必知第一課-CSS碼一秒搞清楚!


    網路行銷課程說故事:SEO優化的龜兔賽跑




    暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~



    中國IT教育領導品牌 達內教育集團第一家海外授權中心 

    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(41)

    • 個人分類:前端工程師就是我!
    ▲top
    • 6月 04 週二 201904:16
    • 輕鬆入門前端工程師的HTML5課程(8)拖曳元素-上

    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-上

    想做出可拖曳的HTML5元素?看完上下兩篇的介紹文,了解基礎不是難事!
     
    HTML5 Drag & Drop API-讓元素變得可拖曳
    你可能不知道,過去在網頁裡面實現 Drag & Drop 是很麻煩的!一定要配合 CSS、onmousedown、onmouseup、setInterval() 等,才能做出元件拖曳的視覺效果。但!現在各位有福啦!HTML5 有直接的 Drag & Drop 機制,讓前端工程師可直接使用 drag and drop 的功能,讓使用者直接透過拖曳的方式,把要上傳的檔案拉到瀏覽器當中。
    所有的 HTML 元素都可設成「可拖曳」的。要讓元素變得可以拖曳,只要在該元素的原始碼中加入 draggable 屬性,如下例 (讓圖片變得可以拖曳):
    <img draggable="true" />
     
    HTML5 Drag & Drop API 的範例
    See the Pen HTML 5 Drag and Drop by Tedutw (@Tedutw) on CodePen.
     
    讓元素可拖放-HTML的部分
    除了<a>、<img>,其他 HTML 裡的元素本來是被預設為不可以作為源元素的,也就是說,我們本來是「拖不動」 它的。但在 HTML5,只要為它加上 draggable="true" 屬性,它就能「被拖曳」了。下面是上例的 HTML 碼的一部分:
    See the Pen HTML 5 Drag and Drop by Tedutw (@Tedutw) on CodePen.
    draggable 屬性上加了 draggable="true",這樣就能讓這個 div 元素變成可以拖曳的 (至少在 Chrome 中可以)。但是我們還需要使用 Javascript 在 dragstart 裡為 dataTransfer 設置一些數據,因此需要加上下面的代碼。這樣可以確保它可以被拖曳。
    See the Pen HTML 5 Drag and Drop-2 by Tedutw (@Tedutw) on CodePen.
     
    Javascript-添加拖曳特效
    首先,我們想讓拖曳元素為半透明。我們可以監聽 dragstart 事件:
    draggable.addEventListener(“dragstart”,(ev)=> {
    ev.target.style.opacity = “。5” ;
    });

     
    See the Pen HTML 5 Drag and Drop-3 by Tedutw (@Tedutw) on CodePen.
     
    然後我們監聽 dragend ,讓它在拖動結束後,還原透明度:
    draggable.addEventListener(“dragend”,(ev)=> {
    ev.target.style.opacity = “” ;
    }};

    See the Pen HTML 5 Drag and Drop-4 by Tedutw (@Tedutw) on CodePen.
     
    接下來,當我們希望讓 「Drag Me」元素進入藍色的目標元素時,目標元素會變成虛線。於是我們為所有的 dropzone 都監聽了 dragenter 及 dragleave 事件,這樣當我們拖動 「Drag Me」元素進入這些藍色的目標元素時,目標元素的邊框就變成虛線,直到「Drag Me」元素離開時變回實線:
    let dropzones = document.querySelectorAll('.dropzone');
    dropzones.forEach((dropzone) => {
    dropzone.addEventListener('dragenter', (ev) => {
    ev.preventDefault();
    dropzone.style.borderStyle = 'dashed';
    return false;
    });
    dropzone.addEventListener('dragover', (ev) => {
    ev.preventDefault();
    return false;
    });
    dropzone.addEventListener('dragleave', (ev) => {
    dropzone.style.borderStyle = 'solid';
    });
    });

     
    See the Pen HTML 5 Drag and Drop-5 by Tedutw (@Tedutw) on CodePen.
    以上 Javascript 重點如下:
     
  • HTML 本身預設為幾乎所有的元素是無法拖曳的,所以上例在 dragenter 與 dragover 中使用 ev.preventDefault() 是為了阻止這樣的預設行為。

  • ev.target 指的是紅色的、寫著「Drop Me」的源元素、dropzone 是指藍色的目標元素,所以在 dragenter 中,我們用 dropzone 參數來修改樣式

  •  
    以上我們完成「拖」的動作,接下來要處理「放」的結果,請見下篇:
     
     
      HERE!延伸閱讀看這裡:





    輕鬆入門前端工程師的HTML5課程(7)瀏覽器儲存簡介




    輕鬆入門前端工程師的HTML5課程(8)拖曳元素-下

    輕鬆入門前端工程師的HTML5課程(9)地理位置定位

    暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~


    不管你要賣吃的玩的用的,上網路行銷課程,保證讓你發發發!



    網路行銷菜鳥的日記Day3-新標籤搞不定?HTML5教學罩你!

    達內課程先就業再付款- 中時電子報


     
     
    (繼續閱讀...)
    文章標籤

    布萊恩的創業小窩 發表在 痞客邦 留言(0) 人氣(183)

    • 個人分類:前端工程師就是我!
    ▲top
    «1...48495066»

    個人資訊

    布萊恩的創業小窩
    暱稱:
    布萊恩的創業小窩
    分類:
    職場甘苦
    好友:
    累積中
    地區:

    熱門文章

    • (162)從達內教育評價事件來看Geego(奇科?)IT培訓評論的謬誤
    • (78)人工智慧和生化人科技下的底層生活-"戰鬥天使:艾莉塔"為你呈現
    • (78)有了Python課程,癌細胞看你往哪跑!
    • (223)前端工程師抄捷徑!今天把網頁顏色代碼直接整理給你!
    • (138)輕鬆入門前端工程師的HTML5課程(4)元素排版-下
    • (1,224)常常聽到的Java,原來真的是咖啡名字!!?
    • (141)前端工程師的必備品Emmet(四)快速設定顯示文字與自訂屬性值
    • (38)人工智慧對未來的衝擊,我們該如何應對?-張忠謀給的四個建議
    • (7,342)Python基礎功不可少-dir()與help()的使用
    • (13)十種文字特效,讓你的網路行銷影片獨樹一格~

    文章分類

    • UI.UX設計五四三 (25)
    • 前端工程師就是我! (74)
    • 達內教育評價,不會讓你失望 (14)
    • 各式程式語言讓你挑! (135)
    • 網路行銷課程.SEO優化 (86)
    • IT評比 (2)
    • IT人的數位生活 (260)
    • 未分類文章 (1)

    最新文章

    • 全球首屆的元宇宙時裝周盛會,落幕後的反響是什麼?
    • 烏克蘭運用人工智慧以辨別戰爭罹難者,是好還是壞?
    • 2022年的人工智慧七大突破就是這些了!!!??
    • Google迫使YouTube Vanced中止開發啦!!!
    • 有關Python跟Java的差別,一篇文章就讓你懂!
    • 前端工程師網頁開發神器Emmet,沒聽過?今天介紹給你!
    • 在元宇宙受傷,你會感受到痛??這次該不會是玩認真的吧?
    • 怕自己成為股市小韭菜嗎?人工智慧操盤手有機會拯救你!!
    • 是什麼原因,讓日本飯店狠下心裁了兩百多個人工智慧!??
    • 透過診斷視網膜病變,人工智慧成功降低糖友的失明風險!

    動態訂閱

    文章精選

    文章搜尋

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣: