Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Babylon.js × microCMS でフォトギャラリーサイト作った
Search
Nobuyoshi
July 15, 2024
Programming
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Babylon.js × microCMS でフォトギャラリーサイト作った
Nobuyoshi
July 15, 2024
More Decks by Nobuyoshi
See All by Nobuyoshi
ピクセルパーフェクトの定義
uemura
1
110
仕事では採用されなかったホスティングサービス、 せっかくなのでLTで話します
uemura
0
120
2年ぶりにCSSアニメーションを作ったよ!
uemura
0
1k
今年初めてのBabylonJsを触ってみた
uemura
0
300
ポートフォリオサイトのお問い合わせフォームをSendgrid + microCMSで作成したお話
uemura
1
1.6k
Three.js(WebGL)で一年以上学習した成果と便利なクラス/ライブラリを紹介
uemura
0
340
Pug / SASS でピクロス(カービィ)を作成
uemura
0
190
僕の好きなcssプロパティ・値5選
uemura
0
510
複雑なHTML_CSS アニメーション 作品一覧 + 苦労したこと
uemura
0
160
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
320
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
590
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
190
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
The NotImplementedError Problem in Ruby
koic
1
600
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.4k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
320
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
290
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
350
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
380
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
Skip the Path - Find Your Career Trail
mkilby
1
140
Building an army of robots
kneath
306
46k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
Leo the Paperboy
mayatellez
7
1.8k
How to make the Groovebox
asonas
2
2.2k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
AI: The stuff that nobody shows you
jnunemaker
PRO
8
690
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
うえむー microCMS ×Babylon.jsで フォトギャラリーサイトを作った
自己紹介 Name うえむー Job フロントエンドエンジニア(ECサイト制作・Shopifyアプリ開発など) Skill HTML / CSS /
JavaScript / TypeScript / PHP / jQuery / Liquid / SASS / Pug / webpack / WordPress / Mobable Type / microCMS / Shopify / React.js / Vue.js / Next.js / MySQL etc... Hobby プログラミング学習・ゴルフ・ボードゲーム・麻雀
・mircoCMSとは ・作るきっかけ ・フォトギャラリーサイトを紹介 ・実装方法 ・今後やりたいこと 目次
microCMSとは
2019年8月に公開した、API型のヘッドレスCMS。 サーバ管理は一切不要で、会員登録するだけですぐにサービスを利用開始でき ます。 ヘッドレスは他にもNewt・Contentful・strapiなどがあります。 microCMSとは
作るきっかけ
数年間学んだmicroCMSとBabylon.jsを 組み合わせて何かを作ってみたい 作るきっかけ
Googleで検索してもそれに ヒットする内容がない 作るきっかけ
とりあえず今までの経験を基に フォトギャラリーサイト作ってみた 作るきっかけ
フォトギャラリーサイトを紹介
・フロントエンドフレームワーク Astro ・CSSフレームワーク Tailwind CSS ・CMS microCMS ・言語 JavaScript ・3D
エンジン Babylon.js ・ホスティング Vercel フォトギャラリーサイトを紹介
None
None
None
実装方法
実装方法 (sports)APIを作成して記事登録
実装方法
--- import { } from "../../library/microcms"; const = await (
{ fields: ["title", "image"] } ); --- <canvas id="renderCanvasList" data-blog={ } ></canvas> ↓ <canvas . id="renderCanvasList" data-blog=" , " width="1440" height="425"></ canvas> getNsports getNsports https://images.microcms-assets.io/assets/xxxxxx/xxxxx/ xxxx2.png|1700|1275|data2, ressports ressports.contents.map((content: any) => content.image.url + '|' + content.image.width + '|' + content.image.height + '|' + content.title) https://images.microcms-assets.io/assets/xxxxxx/xxxxx/ xxxx.png|1700|1275|data1 https://images.microcms-assets.io/assets/xxxxxx/xxxxx/ xxxx3.png|1700|1275|data3 実装方法
<canvas id="renderCanvasList" ></canvas> <script> const canvaslist = const canvaslistsplit =
canvaslist.split(','); canvaslistsplit.forEach(function( value, index ) { 。。。省略 }); </script> data-blog={resnublog.contents.map((content: any) => content.image.url + '|' + content.image.width + '|' + content.image.height + '|' + content.title)} canvasblog.dataset.blog; 実装方法
・画像拡大の仕組み ・カルーセル / 背景 マウスムーブの仕組み ・ライト / ダークモードの仕組みは GitHubのリポジトリを共有するので確認してみて下さい。 実装方法
https://x.com/uemuragame5683 https://n-sports.vercel.app/ https://github.com/uemura5683/n-sports 実装方法
今後やりたい事
ポートフォリオサイト改修 Blender × Babylon.js 今後やりたい事
Thank You!