JavaScript仿淘宝首页商品分类列表效果通常指的是使用JavaScript动态生成并展示商品分类的列表,类似于淘宝首页左侧的分类导航栏。这种效果通常涉及以下几个方面:
以下是一个简单的示例,展示如何使用JavaScript和CSS实现一个仿淘宝首页商品分类列表效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>商品分类列表</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="category-list">
<!-- 分类项将通过JavaScript动态生成 -->
</div>
<script src="script.js"></script>
</body>
</html>/* styles.css */
#category-list {
width: 200px;
}
.category-item {
cursor: pointer;
padding: 10px;
border-bottom: 1px solid #ccc;
}
.sub-category {
display: none;
padding-left: 20px;
}// script.js
document.addEventListener('DOMContentLoaded', function() {
const categoryList = document.getElementById('category-list');
const categories = [
{ name: '电子产品', subCategories: ['手机', '电脑', '平板'] },
{ name: '服装鞋帽', subCategories: ['男装', '女装', '童装'] },
{ name: '家居生活', subCategories: ['家具', '家电', '厨具'] }
];
categories.forEach(category => {
const categoryItem = document.createElement('div');
categoryItem.className = 'category-item';
categoryItem.textContent = category.name;
const subCategoryList = document.createElement('div');
subCategoryList.className = 'sub-category';
category.subCategories.forEach(subCategory => {
const subCategoryItem = document.createElement('div');
subCategoryItem.textContent = subCategory;
subCategoryList.appendChild(subCategoryItem);
});
categoryItem.appendChild(subCategoryList);
categoryList.appendChild(categoryItem);
categoryItem.addEventListener('click', function(event) {
event.stopPropagation();
subCategoryList.style.display = subCategoryList.style.display === 'block' ? 'none' : 'block';
});
});
});requestAnimationFrame进行JavaScript动画控制,减少DOM操作次数。event.stopPropagation()阻止事件冒泡。通过以上方法,可以有效实现并优化仿淘宝首页商品分类列表效果。