当前位置:首页 > 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实现模糊搜索的方法 在Vue中实现模糊搜索功能,可以通过多种方式完成。以下是几种常见的方法: 使用JavaScript的filter和includes方法 <template&g…

h5所能实现的效果

h5所能实现的效果

H5能实现的效果 H5(HTML5)作为最新的HTML标准,具备强大的功能和丰富的API支持,能够实现多种现代Web应用效果。以下是H5的主要能力分类: 多媒体支持 H5原生支持音频和视频播放,无需…

vue实现弹窗效果

vue实现弹窗效果

使用 Vue 实现弹窗效果 组件化弹窗实现 创建独立的弹窗组件 Modal.vue,通过 v-if 或 v-show 控制显示状态: <template> <div class…

vue实现的效果

vue实现的效果

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用。以下是一些常见的 Vue 实现效果及其实现方式: 动态数据绑定 Vue 的核心特性之一是响应式数据绑定。通过将数据与 DOM 元素绑定…

vue实现multiselect效果

vue实现multiselect效果

Vue 实现多选(Multiselect)效果 使用第三方库 vue-multiselect 安装 vue-multiselect 库: npm install vue-multiselec…

vue实现歌词效果

vue实现歌词效果

Vue实现歌词效果 数据准备 歌词通常以时间轴和文本形式存储,可采用数组或对象格式。例如: lyrics: [ { time: 0.5, text: "第一句歌词" }, { time: 3…