当前位置:首页 > JavaScript

js实现文字立体效果

2026-04-04 19:52:25JavaScript

使用CSS text-shadow实现立体文字

通过多层text-shadow叠加创造立体感,阴影偏移方向决定光源角度:

.3d-text {
  color: #fff;
  text-shadow: 
    1px 1px 0 #999,
    2px 2px 0 #888,
    3px 3px 0 #777,
    4px 4px 0 #666;
}

使用Canvas绘制3D文字

通过逐像素偏移和颜色渐变模拟立体效果:

js实现文字立体效果

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');

function draw3DText(text, x, y) {
  ctx.font = 'bold 60px Arial';
  const depth = 5;

  for(let i = depth; i>0; i--) {
    ctx.fillStyle = `rgba(0,0,0,${i/depth*0.6})`;
    ctx.fillText(text, x+i, y+i);
  }

  ctx.fillStyle = '#ff0000';
  ctx.fillText(text, x, y);
}

SVG滤镜实现立体效果

利用SVG的feGaussianBlur和feOffset滤镜组合:

js实现文字立体效果

<svg width="0" height="0">
  <filter id="3d-effect">
    <feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
    <feOffset dx="4" dy="4" result="offsetblur"/>
    <feComposite in="SourceGraphic" in2="offsetblur" operator="over"/>
  </filter>
</svg>

<div style="filter: url(#3d-effect); font-size: 48px;">
  立体文字
</div>

WebGL三维文字渲染

使用Three.js库创建真实3D文字:

import * as THREE from 'three';

const scene = new THREE.Scene();
const fontLoader = new THREE.FontLoader();

fontLoader.load('fonts/helvetiker_regular.typeface.json', (font) => {
  const geometry = new THREE.TextGeometry('3D Text', {
    font: font,
    size: 5,
    height: 2,
    curveSegments: 12
  });

  const material = new THREE.MeshPhongMaterial({ color: 0x00ff00 });
  const textMesh = new THREE.Mesh(geometry, material);
  scene.add(textMesh);
});

CSS transform实现伪3D效果

通过skew和rotate变换模拟透视:

.pseudo-3d {
  display: inline-block;
  transform: 
    rotateY(20deg) 
    skewY(-5deg);
  transition: transform 0.3s;
  color: #3498db;
  font-weight: bold;
}

.pseudo-3d:hover {
  transform: rotateY(30deg) skewY(-8deg);
}

标签: 效果文字
分享给朋友:

相关文章

vue实现气泡效果

vue实现气泡效果

实现气泡效果的方法 在Vue中实现气泡效果可以通过CSS动画、第三方库或自定义组件完成。以下是几种常见方法: 使用纯CSS动画 通过CSS的@keyframes和transform属性创建气泡上升动…

vue实现突出效果

vue实现突出效果

Vue 实现突出效果的方法 在 Vue 中实现突出效果通常涉及动态样式绑定、动画过渡或第三方库的使用。以下是几种常见实现方式: 动态类名绑定 通过 v-bind:class 或简写 :class 实…

vue实现点选效果

vue实现点选效果

实现点选效果的基本思路 在Vue中实现点选效果通常涉及监听用户的点击事件,并通过动态绑定类名或样式来改变元素的外观。核心是利用Vue的响应式数据和事件绑定机制。 使用v-bind和v-on实现 通过…

vue 实现toggle效果

vue 实现toggle效果

使用 v-show 实现 Toggle 通过 v-show 指令可以控制元素的显示与隐藏,适合频繁切换的场景。v-show 仅切换 CSS 的 display 属性,不会销毁和重建 DOM。 <…

vue实现过度效果

vue实现过度效果

Vue 过渡效果实现方法 Vue 提供了内置的 <transition> 和 <transition-group> 组件,用于在元素或组件进入/离开 DOM 时应用过渡效果。…

vue实现菜单效果

vue实现菜单效果

Vue实现菜单效果的方法 基础菜单实现 使用Vue的v-for指令和v-show/v-if可以快速实现基础菜单。通过数据驱动的方式渲染菜单项,结合事件处理实现交互。 <template>…