精选10种酷炫的JS图片特效,让你的网站与众不同!

作者:珠海麻将开发公司 阅读:29 次 发布时间:2025-05-08 02:30:55

摘要:随着互联网的发展,越来越多的网站开始注重用户体验和页面设计。作为网站重要的组成部分,图片特效不仅可以让网站更加美观,还可以提升用户体验。而JavaScript作为前端技术的代表之一,无疑是实现图片特效的最佳选择。今天,小编为大家推荐10种酷炫的JS图片特效,让你的网站与...

随着互联网的发展,越来越多的网站开始注重用户体验和页面设计。作为网站重要的组成部分,图片特效不仅可以让网站更加美观,还可以提升用户体验。而JavaScript作为前端技术的代表之一,无疑是实现图片特效的最佳选择。今天,小编为大家推荐10种酷炫的JS图片特效,让你的网站与众不同!

精选10种酷炫的JS图片特效,让你的网站与众不同!

1.轮播图效果

轮播图作为网站的常见特效之一,具备极高的应用价值,能够展现更多的信息。常用的轮播图效果包括滑动、渐变、旋转等。其中,以滑动效果为例,可以通过JS动态设置元素的left值实现。代码很简单,如下所示:

```javascript

var imgs = document.getElementsByClassName('slider-img');

var len = imgs.length;

var index = 0;

setInterval(function () {

imgs[index].style.left = "-100%";

index = (index + 1) % len;

imgs[index].style.left = 0;

}, 3000);

```

2.瀑布流布局

瀑布流布局已经成为了现代网站设计中不可或缺的一部分,能够有效展示图片和照片,并且使网站更加动态和流畅。基于JS的瀑布流布局效果,通常需要使用定位等技术,代码如下所示:

```javascript

function WaterFallLayout(container, cols) {

var _this = this;

this.container = container;

this.cols = cols;

this.items = container.children;

this.gaps = '20px';

this.init = function () {

var w = container.offsetWidth;

var itemWidth = (w - _this.gaps * (_this.cols - 1)) / _this.cols;

var heights = [];

for (var i = 0; i < _this.cols; i++) {

heights.push(0);

}

for (var i = 0; i < _this.items.length; i++) {

var item = _this.items[i];

item.style.width = itemWidth + 'px';

var minH = Math.min.apply(null, heights);

var idx = heights.indexOf(minH);

item.style.top = minH + 'px';

item.style.left = (idx * (itemWidth + _this.gaps)) + 'px';

heights[idx] += item.offsetHeight + parseInt(_this.gaps);

container.style.height = Math.max.apply(null, heights) + 'px';

}

}

}

```

3.图片懒加载

图片懒加载是一种加速网站速度的方法,可以实现图片的延迟加载,只有在用户滚动到特定位置时才加载。常见的图片懒加载效果包括淡入淡出、左右滑动等。代码如下所示:

```javascript

function lazyLoad() {

var images = document.getElementsByTagName('img');

var len = images.length;

var count = 0;

function loadImage() {

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

var height = document.documentElement.clientHeight;

for (var i = 0; i < len; i++) {

if (images[i].getAttribute('src')) continue;

if (scrollTop + height >= offset(images[i]).top) {

images[i].setAttribute('src', images[i].getAttribute('data-src'));

count++;

}

}

if (count == len) {

document.removeEventListener('scroll', lazyLoad);

}

}

loadImage();

document.addEventListener('scroll', lazyLoad);

}

```

4.图片放大镜效果

放大镜效果可以让用户更好地查看图片细节,提高用户体验。放大镜效果通常需要基于Canvas技术实现,该技术允许在海量图片中实现高质量的图片放大。代码如下所示:

```javascript

function ZoomImage(img) {

var canvas = document.createElement('canvas');

var ctx = canvas.getContext('2d');

var w = img.width,

h = img.height;

canvas.width = w;

canvas.height = h;

ctx.drawImage(img, 0, 0, w, h);

img.onmousemove = function (e) {

var x = e.clientX - img.offsetLeft + window.pageXOffset;

var y = e.clientY - img.offsetTop + window.pageYOffset;

var r = 100; // 放大区域半径

if (x > w - r) {

x = w - r;

}

if (x < r) {

x = r;

}

if (y > h - r) {

y = h - r;

}

if (y < r) {

y = r;

}

canvas.style.left = img.offsetLeft + x - r + 'px';

canvas.style.top = img.offsetTop + y - r + 'px';

ctx.clearRect(0, 0, w, h);

ctx.drawImage(img, 0, 0, w, h);

var imageData = ctx.getImageData(x - r, y - r, 2 * r, 2 * r);

ctx.putImageData(imageData, x - r, y - r);

canvas.style.display = 'block';

}

img.onmouseout = function () {

canvas.style.display = 'none';

}

img.parentNode.insertBefore(canvas, img.nextSibling);

}

```

5.图片缩放效果

图片缩放效果可以让用户更好地观察图片的细节,特别是在手机等小屏幕设备上,具有较高的应用价值。通过JS实现图片缩放效果,需要使用定时器等技术。代码如下所示:

```javascript

function ScaleImage(img) {

var oWidth = img.offsetWidth;

var oHeight = img.offsetHeight;

img.style.maxWidth = oWidth * 2 + 'px';

img.style.maxHeight = oHeight * 2 + 'px';

img.onclick = function () {

var nWidth = img.offsetWidth;

var nHeight = img.offsetHeight;

var timer = setInterval(function () {

nWidth += 20;

nHeight += 20;

if (nWidth >= oWidth * 2) clearInterval(timer);

img.style.width = nWidth + 'px';

img.style.height = nHeight + 'px';

}, 30);

}

}

```

6.图片滚动效果

图片滚动效果可以让用户更加清晰地观看图片,同时增加页面活力。图片滚动通常是通过设置定时器实现,代码如下所示:

```javascript

var imgs = document.getElementsByClassName('slider-img');

var len = imgs.length;

var index = 0;

setInterval(function () {

imgs[index].style.animation = 'zoom 0.5s linear';

index = (index + 1) % len;

imgs[index].style.animation = 'slideInRight 0.5s ease-in-out';

}, 3000);

```

7.图片镜像效果

图片镜像效果可以让图片在水平或垂直方向上产生镜像反射的效果,提高用户体验。常用的图片镜像效果包括翻转、倾斜、旋转等。代码如下所示:

```javascript

function MirrorImage(img) {

var styles = window.getComputedStyle(img);

var w = parseFloat(styles.width) - parseFloat(styles.paddingLeft) - parseFloat(styles.paddingRight);

var h = parseFloat(styles.height) - parseFloat(styles.paddingTop) - parseFloat(styles.paddingBottom);

var canvas = document.createElement('canvas');

canvas.width = w;

canvas.height = h;

var ctx = canvas.getContext('2d');

ctx.translate(w / 2, h / 2);

ctx.scale(1, -1);

ctx.translate(-w / 2, -h / 2);

ctx.drawImage(img, 0, 0, w, h);

img.src = canvas.toDataURL('image/png');

}

```

8.图片滑动效果

图片滑动效果可以让图片在水平或垂直方向上产生切换的效果,增加页面的交互性。常用的图片滑动效果包括滑动、渐变、旋转等。代码如下所示:

```javascript

var imgs = document.getElementsByClassName('slider-img');

var len = imgs.length;

var index = 0;

setInterval(function () {

imgs[index].style.animation = 'flip 0.5s linear';

imgs[index].style.zIndex = 1;

imgs[(index + 1) % len].style.animation = 'flipInY 0.5s ease-in-out';

imgs[(index + 1) % len].style.zIndex = 2;

index = (index + 1) % len;

}, 3000);

```

9.图片折叠效果

图片折叠效果可以让图片更加生动,增加页面的交互性。常用的图片折叠效果包括水平折叠、垂直折叠等。代码如下所示:

```javascript

function FoldImage(img, direction) {

var styles = window.getComputedStyle(img);

var w = parseFloat(styles.width) - parseFloat(styles.paddingLeft) - parseFloat(styles.paddingRight);

var h = parseFloat(styles.height) - parseFloat(styles.paddingTop) - parseFloat(styles.paddingBottom);

var canvas = document.createElement('canvas');

canvas.width = w;

canvas.height = h;

var front = document.createElement('div');

front.style.width = w + 'px';

front.style.height = h / 2 + 'px';

var back = document.createElement('div');

back.style.width = w + 'px';

back.style.height = h / 2 + 'px';

if (direction == 'h') {

front.style.backgroundImage = 'url(' + img.src + ')';

front.style.backgroundRepeat = 'no-repeat';

front.style.backgroundPosition = '0px 0px';

back.style.backgroundImage = 'url(' + img.src + ')';

back.style.backgroundRepeat = 'no-repeat';

back.style.backgroundPosition = '0px -' + h / 2 + 'px';

canvas.style.webkitTransformOrigin = 'center top';

canvas.style.transformOrigin = 'center top';

canvas.style.webkitTransform = 'perspective(800px) rotateX(90deg)';

canvas.style.transform = 'perspective(800px) rotateX(90deg)';

} else {

front.style.backgroundImage = 'url(' + img.src + ')';

front.style.backgroundRepeat = 'no-repeat';

front.style.backgroundPosition = '0px 0px';

back.style.backgroundImage = 'url(' + img.src + ')';

back.style.backgroundRepeat = 'no-repeat';

back.style.backgroundPosition = '-' + w / 2 + 'px 0px';

canvas.style.webkitTransformOrigin = 'left center';

canvas.style.transformOrigin = 'left center';

canvas.style.webkitTransform = 'perspective(800px) rotateY(-90deg)';

canvas.style.transform = 'perspective(800px) rotateY(-90deg)';

}

img.parentNode.insertBefore(canvas, img.nextSibling);

canvas.appendChild(back);

canvas.appendChild(front);

setTimeout(function () {

front.style.webkitTransform = 'perspective(800px) rotateX(0deg)';

front.style.transform = 'perspective(800px) rotateX(0deg)';

back.style.webkitTransform = 'perspective(800px) rotateX(-90deg)';

back.style.transform = 'perspective(800px) rotateX(-90deg)';

canvas.style.webkitTransform = '';

canvas.style.transform = '';

}, 200);

}

```

10.图片模糊效果

图片模糊效果可以让用户更加专注于网站的内容,减少用户的干扰,提高用户体验。常用的图片模糊效果包括高斯模糊、透明度渐变等。代码如下所示:

```javascript

function BlurImage(img) {

var canvas = document.createElement('canvas');

var ctx = canvas.getContext('2d');

var imgWidth = img.width;

var imgHeight = img.height;

canvas.width = imgWidth;

canvas.height = imgHeight;

ctx.clearRect(0, 0, imgWidth, imgHeight);

ctx.drawImage(img, 0, 0, imgWidth, imgHeight);

var imgData = ctx.getImageData(0, 0, imgWidth, imgHeight);

var data = imgData.data;

var blurRadius = 10;

var variance = 1;

var kernels = [];

for (var r = 1; r <= blurRadius; r++) {

var kernel = [];

var sumOfSquares = 0;

for (var x = -r; x <= r; x++) {

var t = Math.exp(-(x * x) / (2 * variance * variance));

kernel.push(t);

sumOfSquares += t * t;

}

kernel = kernel.map(function (x) {

return x / sumOfSquares;

});

kernels.push(kernel);

}

for (var y = 0; y < imgHeight; y++) {

for (var x = 0; x < imgWidth; x++) {

var r = 0, g = 0, b = 0, a = 0;

for (var i = 0; i < kernels.length; i++) {

var kernel = kernels[i];

for (var j = -r; j <= r; j++) {

var k = y + j;

if (k < 0) k = -k;

if (k >= imgHeight) k = (imgHeight - 1) - (k - (imgHeight - 1));

var idx = ((k * imgWidth) + x + j) * 4;

r += kernel[j + r] * data[idx];

g += kernel[j + r] * data[idx + 1];

b += kernel[j + r] * data[idx + 2];

a += kernel[j + r] * data[idx + 3];

}

}

var idx = (y * imgWidth + x) * 4;

data[idx] = r;

data[idx + 1] = g;

data[idx + 2] = b;

data[idx + 3] = a;

}

}

ctx.putImageData(imgData, 0, 0);

img.src = canvas.toDataURL('image/png');

}

```

以上是本文介绍的10种酷炫的JS图片特效,这些特效不仅可以提高网站的视觉效果,还可以优化用户体验。这些代码虽然有些繁琐,但是值得学习借鉴,推荐给前端初学者和JS爱好者。希望能对你的网站设计有所帮助!

  • 原标题:精选10种酷炫的JS图片特效,让你的网站与众不同!

  • 本文链接:https://qipaikaifa.cn/zxzx/10429.html

  • 本文由深圳中天华智网小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与中天华智网联系删除。
  • 微信二维码

    ZTHZ2028

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:157-1842-0347


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部