当前位置:首页 > JavaScript

js实现骷髅

2026-02-01 22:13:40JavaScript

实现骷髅效果的方法

使用CSS和JavaScript可以在网页上创建骷髅效果。以下是几种常见的实现方式:

使用CSS动画

通过CSS的@keyframes定义骷髅骨架的动画效果:

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

使用JavaScript动态生成

通过JavaScript动态创建骨架屏元素:

function createSkeleton() {
  const skeleton = document.createElement('div');
  skeleton.className = 'skeleton';
  skeleton.style.width = '100%';
  skeleton.style.height = '20px';
  skeleton.style.margin = '10px 0';
  return skeleton;
}

document.querySelector('.container').appendChild(createSkeleton());

结合CSS变量

使用CSS变量控制骨架屏的样式,便于统一管理:

:root {
  --skeleton-color: #f0f0f0;
  --skeleton-highlight: #e0e0e0;
}

.skeleton {
  background: linear-gradient(
    90deg,
    var(--skeleton-color) 25%,
    var(--skeleton-highlight) 50%,
    var(--skeleton-color) 75%
  );
}

响应式骨架屏

根据内容动态调整骨架屏的大小:

function responsiveSkeleton(element) {
  const rect = element.getBoundingClientRect();
  const skeleton = createSkeleton();
  skeleton.style.width = `${rect.width}px`;
  skeleton.style.height = `${rect.height}px`;
  return skeleton;
}

移除骨架屏

当内容加载完成后移除骨架效果:

function removeSkeleton() {
  const skeletons = document.querySelectorAll('.skeleton');
  skeletons.forEach(skeleton => skeleton.remove());
}

// 模拟内容加载
setTimeout(removeSkeleton, 2000);

优化性能

对于大量骨架屏元素,使用文档片段减少DOM操作:

function createMultipleSkeletons(count) {
  const fragment = document.createDocumentFragment();
  for (let i = 0; i < count; i++) {
    fragment.appendChild(createSkeleton());
  }
  document.querySelector('.container').appendChild(fragment);
}

这些方法可以根据实际需求组合使用,创建出适合项目的骨架屏效果。

js实现骷髅

标签: 骷髅js
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…