鼠标移到图片上,光线闪过效果的实现

本文用两种方式实现了鼠标移动到图片上时,有光线闪过的效果。

第一种:使用::before伪元素实现。

1.html代码部分

<div class='container'>
			<div class="item">
				<a href="#">
					<div><img src="./img/dizi.jpg" /></div>
				</a>
			</div>
			<div class="item">
				<a href="#">
					<div><img src="./img/yishu.jpg" /></div>
				</a>
			</div>
			<div class="item">
				<a href="#">
					<div><img src="./img/laikang.jpg" /></div>
				</a>
			</div>
</div>

2.css代码部分

实现思路:
使用伪元素::before在item的前面放置一个盒子,内容为空,设置盒子的宽度高度,初始位置在.item的左侧,结束位置在.item的右侧,光线效果使用linear-gradient线性渐变,并让盒子绕x轴倾斜-25deg
当鼠标移到.item图片上时,这个光线盒子从左边移动到右边

			.container {
				width: 1000px;
				margin: 20px auto;
				height: 200px;
				display: flex;
				justify-content: space-between;
			}

			.container .item {
				position: relative;
				width: 300px;
				overflow: hidden;
			}

			.container .item img {
				width: 100%;
				height: 200px;
			}
        
			.container .item::before {
				content: '';
				position: absolute;
				width: 200px;
				height: 100%;
				top: 0;
				left: -150%;   /*初始水平位置,光线用渐变效果生成*/
				background-image: linear-gradient(rgba(255, 255, 255, 0) 0,
						rgba(255, 255, 255, 0.2) 50%,
						rgba(255, 255, 255, 0) 100%);
				transform: skewX(-25deg);
			}

			.item:hover::before {
				left: 150%;	/*结束处的水平位置*/
				transition: all .5s ease 0s;  /*过渡效果*/
			}

第二种:额外添加标记<i></i>实现

1.html代码部分

增加<i></i>标记

	<div class="item">
		<a href="#">
			<div><img src="./img/laikang.jpg" /></div>
		</a>
		<i class="light"></i>
	</div>

2.css代码部分

实现思路:和第一种基本一样,区别是这里用的hsla颜色值,第一种用的是rgba颜色值

	.item {
		position: relative;
		width: 300px;
		height: 200px;
		overflow: hidden;
	}

	.item img {
		width: 100%;
		height: 100%;
	}

	.item .light {
		cursor: pointer;
		position: absolute;
		left: -150%;   	/*初始水平位置*/
		top: 0;
		width: 100%;
		height: 100%;
		background-image: linear-gradient(0deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, .5), hsla(0, 0%, 100%, 0));
		transform: skewX(-25deg); /*绕X轴倾斜-25度*/
	}
	.item:hover .light {
		transition: all .5s ease;  /*过渡效果*/
		left: 150%;    	/*结束水平位置*/
	}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-09 06:34:12       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 06:34:12       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 06:34:12       82 阅读
  4. Python语言-面向对象

    2024-05-09 06:34:12       91 阅读

热门阅读

  1. 星光日报:简单报纸排版的HTML与CSS解析

    2024-05-09 06:34:12       35 阅读
  2. 实用的Chrome命令

    2024-05-09 06:34:12       32 阅读
  3. 2024.5.8 —— LeetCode 高频题复盘

    2024-05-09 06:34:12       30 阅读
  4. 多年后,再探算法和数据结构

    2024-05-09 06:34:12       31 阅读
  5. Element-ui快速入门

    2024-05-09 06:34:12       39 阅读
  6. 「PHP系列」PHP XML Expat 解析器

    2024-05-09 06:34:12       32 阅读
  7. 设计模式——原型模式(Prototype)

    2024-05-09 06:34:12       37 阅读
  8. Debian常用命令

    2024-05-09 06:34:12       37 阅读
  9. unsqueeze() 方法与squeeze() 方法

    2024-05-09 06:34:12       28 阅读