用php或JavaScript,做类似爱奇艺的电影筛选板块,多层多标签实时筛选对应的项目,注意我要的是点选标签时要实时的筛选出对应的项目,请帮我编写简单的模板

时间: 2024-03-26 09:37:52 浏览: 8
好的,以下是一个简单的模板供参考: HTML 部分: ```html <div class="filter-container"> <div class="filter-group"> <h4 class="filter-title">类型:</h4> <div class="filter-options"> <label><input type="checkbox" name="type" value="action"> 动作</label> <label><input type="checkbox" name="type" value="comedy"> 喜剧</label> <label><input type="checkbox" name="type" value="drama"> 剧情</label> </div> </div> <div class="filter-group"> <h4 class="filter-title">地区:</h4> <div class="filter-options"> <label><input type="checkbox" name="region" value="china"> 中国</label> <label><input type="checkbox" name="region" value="us"> 美国</label> <label><input type="checkbox" name="region" value="japan"> 日本</label> </div> </div> <div class="filter-group"> <h4 class="filter-title">年代:</h4> <div class="filter-options"> <label><input type="checkbox" name="year" value="2010s"> 2010年代</label> <label><input type="checkbox" name="year" value="2000s"> 2000年代</label> <label><input type="checkbox" name="year" value="90s"> 90年代</label> </div> </div> </div> <div class="movie-container"> <!-- 电影列表 --> </div> ``` CSS 部分: ```css .filter-container { display: flex; margin-bottom: 20px; } .filter-group { margin-right: 20px; } .filter-title { margin: 0; margin-bottom: 5px; } .filter-options { margin: 0; } .movie-container { display: flex; flex-wrap: wrap; justify-content: space-between; } .movie-item { width: calc(33.33% - 10px); margin-bottom: 20px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); } ``` JavaScript 部分: ```javascript const filters = document.querySelectorAll('.filter-options input[type="checkbox"]'); const movieContainer = document.querySelector('.movie-container'); const movies = [ { title: '速度与激情', type: 'action', region: 'us', year: '2000s' }, { title: '肖申克的救赎', type: 'drama', region: 'us', year: '90s' }, { title: '功夫', type: 'comedy', region: 'china', year: '2000s' }, { title: '千与千寻', type: 'drama', region: 'japan', year: '90s' }, { title: '黑客帝国', type: 'action', region: 'us', year: '90s' }, { title: '让子弹飞', type: 'comedy', region: 'china', year: '2010s' }, { title: '阿甘正传', type: 'drama', region: 'us', year: '90s' }, { title: '疯狂的石头', type: 'comedy', region: 'china', year: '2000s' }, { title: '指环王', type: 'drama', region: 'us', year: '2000s' }, { title: '海上钢琴师', type: 'drama', region: 'italy', year: '90s' }, ]; function renderMovies(movies) { let html = ''; movies.forEach(movie => { html += `<div class="movie-item">${movie.title}</div>`; }); movieContainer.innerHTML = html; } function filterMovies() { const typeFilters = Array.from(document.querySelectorAll('input[name="type"]:checked')).map(input => input.value); const regionFilters = Array.from(document.querySelectorAll('input[name="region"]:checked')).map(input => input.value); const yearFilters = Array.from(document.querySelectorAll('input[name="year"]:checked')).map(input => input.value); let filteredMovies = movies.filter(movie => { if (typeFilters.length > 0 && !typeFilters.includes(movie.type)) { return false; } if (regionFilters.length > 0 && !regionFilters.includes(movie.region)) { return false; } if (yearFilters.length > 0 && !yearFilters.includes(movie.year)) { return false; } return true; }); renderMovies(filteredMovies); } filters.forEach(filter => { filter.addEventListener('change', filterMovies); }); renderMovies(movies); ``` 注意,这只是一个简单的模板,仅供参考。在实际应用中,您需要根据自己的需求进行相应的修改和扩展。

相关推荐

最新推荐

recommend-type

a标签的href与onclick事件的区别详解

onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在的形式,今天用这种方式就遇到一些问题,摘网友的文章和我的结论放在...
recommend-type

javascript连接mysql与php通过odbc连接任意数据库的实例

脑洞大开用javascript链接mysql,2个小时总算实现了,用到了odbc,后面又想到用php链接odbc链接数据库,也实现了,就把案例放一下。...3.下载配置odbc源需注意,VC库要和odbc安装文件位数一致,32位源对应
recommend-type

JS实现table表格内针对某列内容进行即时搜索筛选功能

主要介绍了JS实现table表格内针对某列内容进行即时搜索筛选功能,涉及javascript针对HTML元素的遍历、属性动态修改相关操作技巧,需要的朋友可以参考下
recommend-type

详解a标签添加onclick事件的几种方式

主要介绍了a标签添加onclick事件的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

javascript中直接写php代码的方法

一、在javascript中嵌入php代码javascript若是通过js文件包含进来的,那么js文件中也可以直接写php代码,只不过包含js文件是扩展名要改成php,如: 代码如下:[removed][removed]二、javascript函数参数的默认值c语言...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。