带感”的边框交互动画效果

 


效果的原理其实就是“四条边”发生宽度和高度的变化,上下两边是宽度变化,左右两边是高度的变化;

它们发生变化的方向也可以可控的,根据坐标设置即可控制。

下面我们直接上代码:

首先准备基础代码,那四条边并不是真正的border,而是通过标签加以宽高写出来,然后定位到四个方向;

<!-- html -->
<div class="box">
	<div class="topL"></div>
	<div class="rightL"></div>
	<div class="bottomL"></div>
	<div class="leftL"></div>
</div>
<div class="box box2">
	<div class="topL"></div>
	<div class="rightL"></div>
	<div class="bottomL"></div>
	<div class="leftL"></div>
</div>

<style>
/* 基础样式 */
.box{ width: 300px; height: 200px; border: 2px solid #ccc; margin: 100px 200px; position: relative; float: left;}
.box>div{background: purple; position: absolute; }
.topL{ width: 302px; height: 2px; left: -2px; top: -2px;}
.rightL{ width: 2px; height: 202px; right: -2px; top: -2px; }
.bottomL{ width: 302px; height: 2px; right: -2px; bottom: -2px;}
.leftL{ width: 2px; height: 202px; left: -2px; bottom: -2px; }
</style>

通过上面代码得到以下效果:

然后将上下两条边的:width:0,左右两边的:height:0;

注意事项:“边框”的宽度和高度给多两个像素主要是解决“缺口”问题;

.topL{ width: 0; height: 2px; left: -2px; top: -2px;}
.rightL{ width: 2px; height: 0; right: -2px; top: -2px; }
.bottomL{ width: 0; height: 2px; right: -2px; bottom: -2px;}
.leftL{ width: 2px; height: 0; left: -2px; bottom: -2px; }

给父级盒子添加鼠标移上效果样式,也就是设置边框的宽度和高度变化,然后给四条边加上过渡属性:transition;

/* 鼠标移上触发效果 */
.box:hover .topL,.box:hover .bottomL{  width: 302px;}
.box:hover .leftL,.box:hover .rightL{  height: 202px;}

.box>div{background: purple; position: absolute; transition: all .3s linear; }

得到以下效果:

如果需要修改边框变化的方向,可以通过修改定位的坐标来设置,例如上下两条边,如果设置为左对齐:left:0; 那么边框的方向就是从左到右,如果设置为右对齐:right:0,那就是从右到左; 左右两边也是如此,如果设置为顶对齐:top:0,那么就是由上到下,如果设置为地对齐:bottom:0,那么就是由下到上;

例如:

/* 不同位置的动画效果 */
.box2 .topL{ right: 0; top: -2px; left: auto;}
.box2 .bottomL{ left: 0; bottom: -2px; right: auto;}

可以得到两个方向不一样的效果:

上面这些效果是通过触发来实现的,除此之外,还可以通过animation变成自动动画,效果也不错,请看下面代码;

<div class="box ani">
	<div class="topL"></div>
	<div class="rightL"></div>
	<div class="bottomL"></div>
	<div class="leftL"></div>
</div>
<div class="box box2 ani">
	<div class="topL"></div>
	<div class="rightL"></div>
	<div class="bottomL"></div>
	<div class="leftL"></div>
</div>

/* 给边框加上自动动画 */
.ani .topL,.ani .bottomL{ animation: lineS1 2s linear infinite; }
@keyframes lineS1{
	0%{ width: 0; }
	50%{ width: 302px; }
	100%{ width: 0; }
}
.ani .leftL,.ani .rightL{ animation: lineS2 2s linear infinite; }
@keyframes lineS2{
	0%{ height: 0; }
	50%{ height: 202px; }
	100%{ height: 0; }
}

得到效果:

以上是完整效果展示。当然,制作类似效果还有其他方法,例如通过js或jq控制等,感兴趣的童鞋可以多尝试!

时间: 2024-11-08 19:13:06

带感”的边框交互动画效果的相关文章

用POP动画编写带富文本的自定义动画效果

[源码] https://github.com/YouXianMing/POPNumberCount [效果] [特点] * 支持富文本 * 可定制型强(继承父类重写父类的startAnimation方法即可) * 支持动画的中断与持续 * 支持CAMediaTimingFunction * 数据与UI隔离,便于你封装属于你的类 [核心] // // POPNumberCount.h // POP // // Created by XianMingYou on 15/4/10. // Copyr

太赞了!超炫的页面切换动画效果【附源码下载】

今天我们想与大家分享一组创意的页面切换熊效果集合.我们已经在示例中罗列了一组动画,可以被应用到页面切换过程中,创造出很有趣的导航效果.虽然有些效果都非常简单,只是简单的滑动动作,但另外的一些则是利用了视角(Perspective)和 3D 转换(3D Transforms)来创造一些立体动感的效果. 立即下载      在线演示 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. CSS 动画根据它们的实现的效果分为不同的组.为展示

万彩动画大师教程 | 如何实现旧电视屏幕的强调动画效果

给图片文字添加旧电视屏幕的动画效果,会让图片文字有一种旧电视屏幕的效果. 在[时间轴区域]中点击动画条后面的[+],会弹出一个小窗体,接着在窗体内部的[搜索框]中输入[电视]的首字母[ds]并搜索,就会出现带[ds]的动画效果,我们可以看到有[旧电视屏幕]的动画效果,然后点击[确定],就可以实现旧电视屏幕的强调动画效果,如下图所示: 原文地址:https://www.cnblogs.com/focusky/p/10248057.html

Waves – 赞!超炫交互体验的点击动画效果

Waves 点击效果的灵感来自于谷歌的材料设计,很容易使用.只需要引入 waves.min.css 和 waves.min.js 到 HTML 文件中可以使用了.采用 touchstart 与 touchend 事件,支持移动设备.赶紧来体验吧! 效果演示     插件下载 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 十

12个来自 Codrops 的创新交互和动画效果

产品的用户体验是否被用户所接受,很大一部分取决于交互界面的设计,交互界面设计是整个产品设计中的核心,对于产品品质有着决定性的影响.这里集合了12个来自 Codrops 的创新的界面交互和动画效果,值得我们去研究和使用. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 您可能感兴趣的相关文章 Web 前端开发人员和设计师必读文章集锦 经典网页设计:25个应用视差滚动单页网站 经典网页设计:20个新鲜出炉 HTML5 网站 经典网页

/*带动画效果的hover*/

1 <!DOCTYPE html> 2 /*带动画效果的hover*/ 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Title</title> 7 <style> 8 .ele{ 9 background-color: #dddddd;/*带动画效果的hover*/ 10 } 11 .ele:hover{

iOS开发笔记7:Text、UI交互细节、两个动画效果等

Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中遇到的一些细节问题,包括Masonry部分的问题. 动画介绍最近用到的两个,算是常用级别的,动画这部分之后会专门研究总结下. 最后介绍两个工具及三个Xcode使用设置的问题. 1.Text (1)UILabel显示多行文字并且文字置顶显示 不限制UILabel的高度(宽度需要设置,确定文字何时换行)

Android带动画效果的弹窗

在网络加载数据的时候通常需要很多时间,这个时候程序里面经常需要写一个提示正在加载数据的弹窗,这篇文章用两种方式实现带动画效果的Dialog:帧动画实现和GIF动态图实现,它们都能达到动画的效果 第一种.帧动画实现 自定义一个Dialog,先看一下布局文件dialog_animation.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=

JavaScript实战(带收放动画效果的导航菜单)

虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏服:http://www.cnblogs.com/susufufu/p/5768402.html ) 今天是第一战:带收放动画效果的菜单,效果如下图:(样式有点丑(-^-)) 动画效果:鼠标hover改变所有目标的背景和字体颜色,鼠标移动到‘首页导航’,显示下面的分组菜单,分组菜单有子菜单,点击可缩放,带动画过度效果! 如何