tailwindcss+js实现炫酷三维空间相册排列交互代码
代码语言:html
所属分类:画廊相册
代码描述:tailwindcss+js实现炫酷三维空间相册排列交互代码
代码标签: tailwindcss js 炫酷 三维 空间 相册 排列 交互 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head><meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tailwindcss.3.4.16.js"></script> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet"> <style> /* 3D Transform utilities */ </style> <script> // Configure Tailwind to include our custom 3D transform utilities tailwind.config = { theme: { extend: { // Add any custom theme extensions here if needed } }, plugins: [ function({ addUtilities }) { const rotateXUtilities = {}; const rotateYUtilities = {}; const rotateZUtilities = {}; const rotateValues = [0, 5, 10, 15, 20, 30, 45, 75]; // Generate rotate-x utilities rotateValues.forEach((value) => { rotateXUtilities[`.rotate-x-${value}`] = { '--tw-rotate-x': `${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; if (value !== 0) { rotateXUtilities[`.-rotate-x-${value}`] = { '--tw-rotate-x': `-${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; } }); // Generate rotate-y utilities rotateValues.forEach((value) => { rotateYUtilities[`.rotate-y-${value}`] = { '--tw-rotate-y': `${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; if (value !== 0) { rotateYUtilities[`.-rotate-y-${value}`] = { '--tw-rotate-y': `-${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; } }); // Generate rotate-z utilities rotateValues.forEach((value) => { rotateZUtilities[`.rotate-z-${value}`] = { '--tw-rotate-z': `${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; if (value !== 0) { rotateZUtilities[`.-rotate-z-${value}`] = { '--tw-rotate-z': `-${value}deg`, transform: ` translate3d(var(--tw-translate-x, 0), var(--tw-translate-y, 0), var(--tw-translate-z, 0)) rotateX(var(--tw-rotate-x, 0)) rotateY(var(--tw-rotate-y, 0)) rotateZ(var(--tw-rotate-z, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)) `.replace(/\\s+/g, ' ').trim(), }; } }); // Perspective utilities const perspectiveUtilities = { ".perspective-none": { perspective: "none" }, ".perspective-dramatic": { perspective: "100px" }, ".perspective-near": { perspective: "300px" }, ".perspective-normal": { perspective: "500px" }, ".perspective-midrange": { perspective: "800px" }, ".perspective-distant": { perspective: "1200px" }, }; // Transform style utilities const transformStyleUtilities = { ".transform-style-preserve-3d": { "transform-style": "preserve-3d" }, ".transform-style-flat": { "transform-style": "flat" }, }; addUtilities({ ...rotateXUtilities, ...rotateYUtilities, ...rotateZUtilities, ...perspectiveUtilities, ...transformStyleUtilities, }); } ] }; </script></head> <body class="bg-neutral-950 text-white antialiased selection:bg-white/10 selection:text-white" style="font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji';"> <!-- Header --> <header class="pointer-events-none absolute top-0 left-0 right-0 z-[40]"> <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8"> <div class="flex items-center justify-between py-5"> <div class="flex items-center gap-3 pointer-events-auto"> <div class="h-8 w-8 rounded-lg bg-gradient-to-br from-white/10 to-white/0 ring-1 ring-white/10 flex items-center justify-center"> <!-- lucide:box --> .........完整代码请登录后点击上方下载按钮下载查看
网友评论0