图形对比之resize

题引

资料:《css揭秘》
----- 图片对比滑动控件基本上可以理解为两层结构:下层是一张固定的图片;上层的图片则可以在水平方向上调整大小,从而或多或少地显露出下层图片。这正是 JavaScript 框架的价值所在:让上层图片的宽度可以由鼠标拖动调整。不过,要让某个元素的大小变得可调整,并不需要动用脚本。在 CSS 基本 UI 特性中,我们获得了一个为此而生的属性:低调的 resize !
在这里插入图片描述

简约版

先上html代码:
用一个 <//div> 作为它的容器,再对这个容器应用 resize属性

<div class="image-slider">
	 <div>
	 	<img src="adamcatlace-before.jpg" alt="Before" />
	 </div>
	 <img src="adamcatlace-after.jpg" alt="After" />
</div>

css代码

.image-slider {
	position: relative;
	display: inline-block;
}

.image-slider>div {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 50%;    /* 初始宽度 */
	max-width: 100%;  
	overflow: hidden;   /* 让它可以裁切图片 */
	resize: horizontal;
}

.image-slider img {
	display: block;
	user-select: none;  /* 即使用户在没有点中调节手柄的情况下拖动鼠标,也不会误选图片*/
}

.image-slider>div::before {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	width: 12px;
	height: 12px;
	padding: 5px;
	background: linear-gradient(-45deg, white 50%, transparent 0);
	background-clip: content-box;
	cursor: ew-resize;   /* 提示用户这个区域可以像调节手柄那样拖动 */
}

效果
在这里插入图片描述

总结

有很多再加上js脚本控制的优化方案,使交互性更好:比如以将一个原生的滑块控件(HTML 范围输入控件)覆盖在图片上,用它来控制上层图片的伸缩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值