当前位置:首页 > JavaScript

js实现模糊效果

2026-03-16 05:55:11JavaScript

使用CSS滤镜实现模糊效果

在JavaScript中,可以通过修改元素的CSS filter属性来实现模糊效果。blur()函数接受一个参数,表示模糊半径,值越大越模糊。

const element = document.getElementById('target');
element.style.filter = 'blur(5px)';

动态调整模糊程度可以通过改变参数值实现:

js实现模糊效果

let blurAmount = 0;
function applyBlur() {
    blurAmount += 1;
    element.style.filter = `blur(${blurAmount}px)`;
}

使用Canvas实现高级模糊

Canvas的getImageDataputImageData方法可以处理像素数据,结合模糊算法实现更复杂的模糊效果:

function applyCanvasBlur(canvas, radius) {
    const ctx = canvas.getContext('2d');
    const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    // 实现高斯模糊算法处理imageData.data
    ctx.putImageData(imageData, 0, 0);
}

使用第三方库实现高性能模糊

StackBlur是一个轻量级的JavaScript模糊库,性能优于纯CSS实现:

js实现模糊效果

// 引入StackBlur库后
stackBlurImage('target-image', 0, 0, width, height, radius);

SVG滤镜实现跨浏览器模糊

通过创建SVG滤镜并应用到HTML元素上:

<svg>
  <filter id="blur-effect">
    <feGaussianBlur stdDeviation="3"/>
  </filter>
</svg>

<script>
  document.getElementById('target').style.filter = 'url(#blur-effect)';
</script>

动态模糊与动画结合

使用requestAnimationFrame实现平滑的模糊动画:

function animateBlur(element, targetBlur, duration) {
    const start = performance.now();
    function update(time) {
        const elapsed = time - start;
        const progress = Math.min(elapsed / duration, 1);
        const currentBlur = progress * targetBlur;
        element.style.filter = `blur(${currentBlur}px)`;
        if (progress < 1) requestAnimationFrame(update);
    }
    requestAnimationFrame(update);
}

标签: 模糊效果
分享给朋友:

相关文章

vue实现对话框效果

vue实现对话框效果

Vue 对话框实现方法 使用组件化方式封装对话框 创建一个独立的对话框组件(如Dialog.vue),通过v-model控制显示隐藏: <template> <div clas…

vue实现预览效果

vue实现预览效果

实现预览效果的常见方法 在Vue中实现预览效果可以通过多种方式完成,以下列举几种典型场景和对应的实现方案: 图片/文件预览 使用<input type="file">结合FileRead…

vue效果实现

vue效果实现

Vue 效果实现方法 Vue.js 提供了多种方式实现动态效果,包括过渡动画、状态驱动的 UI 变化以及第三方动画库集成。以下是常见效果的实现方案: 过渡动画 使用 Vue 内置的 <tran…

react如何添加效果

react如何添加效果

React 添加动画效果的方法 使用 CSS 过渡动画 在 React 组件中直接通过 className 或 style 属性应用 CSS 过渡效果。定义 CSS 类包含 transition 属性…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…

vue实现折叠效果

vue实现折叠效果

使用 v-show 或 v-if 实现基础折叠 通过 Vue 的指令 v-show 或 v-if 控制元素的显示与隐藏。v-show 通过 CSS 的 display 属性切换,v-if 直接操作 D…