前端:运用html+css+js模仿百度热搜电影榜鼠标移入特效

news/2024/11/29 2:51:33/

在这里插入图片描述

前端:运用html+css+js模仿百度热搜电影榜鼠标移入特效

        • 1. 实现原理
        • 2. 界面布局
        • 3. js实现对鼠标移入和移出的监听
        • 4. 参考代码如下:

1. 实现原理

百度热搜上电影榜鼠标移入特效如上图所示。个人觉得上述特效实现原理为使用相对定位、绝对定位实现的(鼠标移入和没有移入时,元素布局有一些不同而已)。至于鼠标移入时,出现延迟效果,则是在css上设置transition(用于设置过渡效果的)实现的。我的实现效果如下(只把那个特效实现,其他元素布局没有搞):
在这里插入图片描述

2. 界面布局

使用ul标签和li标签,把li标签高度设置为30px,同时设置li标签属性overflow:hidden;(超出部分隐藏),
为li标签设置相对定位。为li标签设置一个class属性,这个class属性的p标签(用于设置标题)和img标签(图片)设置绝对定位。当鼠标移入到这个li标签上时,改变这个li标签的class属性即可。

html代码如下:
请添加图片描述
css样式代码如下:
请添加图片描述

3. js实现对鼠标移入和移出的监听

主要涉及mouseover和mouseout这两个事件,它们分别表示为鼠标移入和移出这个元素时,执行的操作。我们要做的操作就是,当鼠标移入li标签时,把其他li标签元素class属性设置为空,把当前li标签元素class属性设置上述说到的那个。而鼠标移出ul标签时(恢复到默认效果,即第一个li标签class属性值为上述说到的那个。),把其他li标签元素class属性设置为空,把第一个li标签class属性值设置上述那个属性值即可。参考代码如下:
请添加图片描述
使用jquery,这样代码量可以得到明显的降低。

4. 参考代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>特效</title><style type="text/css">*{margin: 0;padding: 0;}ul{margin: 20px auto;list-style: none;width: 160px;}ul >li{height: 30px;position: relative;overflow: hidden;cursor: pointer;transition: all 0.5s;}ul >li >p{width: 100%;line-height: 30px;text-align: center;}ul .cur_li{height: 107px;}ul .cur_li img{width: 80px;height: 107px;position: absolute;top: 0;left: 0;}ul .cur_li p{width: 80px;position: absolute;top: 10px;left: 80px;}</style><script src="https://pss.bdstatic.com/static/superman/js/lib/jquery-1-edb203c114.10.2.js"></script>
</head>
<body><ul><li class="cur_li"><p>八角笼中</p><img src="https://fyb-2.cdn.bcebos.com/hotboard_image/fe8e114ab0561124539454972d4a2cbc?x-bce-process=image/resize,m_fill,w_160,h_214" alt=""></li><li><p>封神第一部</p><img src="https://fyb-2.cdn.bcebos.com/hotboard_image/427d971c382982519908c4d9d1aa0f83?x-bce-process=image/resize,m_fill,w_160,h_214"alt=""></li><li><p>消失的她</p><img src="https://fyb-2.cdn.bcebos.com/hotboard_image/b7459789f21ff9fd635a55c996c81b65?x-bce-process=image/resize,m_fill,w_160,h_214"alt=""></li></ul>
</body>
<script type="text/javascript">var fun = function(){$('ul li').each((i,e)=>{$(e).attr('class','');});}$('ul >li').each((i,e)=>{$(e).mouseover(() => {fun();$(e).attr('class','cur_li');});});$('ul').mouseout(()=>{fun();$(document.querySelector('ul >li')).attr('class','cur_li');});
</script>
</html>

http://www.ppmy.cn/news/978000.html

相关文章

23 自定义控件

案例&#xff1a;组合Spin Box和Horizontal Slider实现联动 新建Qt设计师界面&#xff1a; 选择Widget&#xff1a; 选择类名&#xff08;生成.h、.cpp、.ui文件&#xff09; 在smallWidget.ui中使用Spin Box和Horizontal Slider控件 可以自定义数字区间&#xff1a; 在主窗口w…

华为认证HCIA-HCIP-HCIEdatacom题库解析+机构视频+实验

题库包含有2023年最新HCIA-datacom题库、HCIP-datacom题库&#xff0c;HCIE-datacom题库&#xff0c; 云计算HCIA&#xff0c;HCIP题库&#xff0c;云服务HCIA&#xff0c;HCIP题库&#xff0c;华为存储HCIP题库&#xff0c;华为安全HCIP题库 &#xff0c;学习笔记&#xff0c;…

面积阵列封装技术-BGA CSP/Flip Chip

面积阵列封装有不同的类型&#xff0c;因此也就有着不 同的结构特点和组装方式。面积阵列封装以其结构 形 式 可 分 为 两 大 类 :BGA/CSP 和 倒 装 芯 片&#xff08;Flip Chip&#xff09;。 1 BGA技术 BGA 形式封装是 1980 年由富士通公司提出&#xff0c; 在日本 IBM 公司…

app专项性能测试测试指标和测试方法

工作中没有做过app这块的性能测试&#xff0c;但是你有面试问到过&#xff0c;现在做个总结如下 1、首次加载&#xff08;冷启动&#xff09; A.使用logcat监控activitymanager B.adb shell am start -w C.人工秒表计数 2、非第一启动&#xff08;热启动&#xff09; 应…

Spring Cloud【SkyWalking服务环境搭建、微服务接入SkyWalking探针、Docker搭建Elasticsearch环境 】(十四)

目录 分布式请求链路追踪_SkyWalking服务环境搭建 分布式请求链路追踪_微服务接入SkyWalking探针 分布式请求链路追踪_Docker搭建Elasticsearch环境 分布式请求链路追踪_SkyWalking使用Elasticsearch持久化 分布式请求链路追踪_SkyWalking自定义链路追踪 分布式请求链路…

Fastify系列-从0到1超详细手把手教你使用Fastify构建快速的API

什么是Fastify&#xff1f; Fastify是一个web框架&#xff0c;高度专注于以最少的开销和强大的插件架构提供最佳的开发体验。它的灵感来自于Hapi和Express&#xff0c;据我们所知&#xff0c;它是运行在Node.js上的最快的Web框架之一。 为什么使用Fastify&#xff1f; 这些是…

网络安全必备的10款工具(附安装包)

“磨刀不误砍柴工”。 优秀的工具有助于提高工作效率&#xff0c;安全工程师也需要优秀的安全软件来提高工作效率。 在具体的工作场景中&#xff0c;有很多种选择&#xff0c;这里有10种开源的免费安全工具&#xff0c;不仅可以提高工作效率&#xff0c;还可以降低企业成本。 …

【LeetCode热题100】打卡第43天:会议室II完全平方数

文章目录 【LeetCode热题100】打卡第43天&#xff1a;会议室II&完全平方数⛅前言 会议室II&#x1f512;题目&#x1f511;题解 完全平方数&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第43天&#xff1a;会议室II&完全平方数 ⛅前言 大家好&#xff…