当前位置: 首页 > news >正文

建设标准 免费下载网站创意设计

建设标准 免费下载网站,创意设计,网站建设运营费用,网站建设公司运营经验在开发中,我们可能会遇到需要让卡片高度由内容撑起(即不能手动设置height),并且在高度增加时增加缓动动画的需求。本文将介绍几种实现方式。 文章目录方法1:使用CSS的max-height属性和:hover伪类特定例子:鼠…

在开发中,我们可能会遇到需要让卡片高度由内容撑起(即不能手动设置height),并且在高度增加时增加缓动动画的需求。本文将介绍几种实现方式。

文章目录

    • 方法1:使用CSS的max-height属性和:hover伪类
      • 特定例子:鼠标悬浮卡片,显隐按钮
    • 方法2:使用JavaScript监听卡片内容变化
    • 方法3:使用CSS的transform属性

方法1:使用CSS的max-height属性和:hover伪类

我们可以使用CSS的max-height属性和:hover伪类来实现卡片高度增加时的缓动动画效果。

ps:为什么不使用transition:height 1s。因为我们卡片的高度靠内容填充,非CSS限定,故transition+height的组合会失效

具体实现步骤如下:

  1. 在CSS中设置卡片的max-height属性为一个较大的值,比如500px。
.card {max-height: 500px;transition: max-height .2s ease-in-out;
}
  1. 在:hover时将max-height设置为实际高度(或以上)。
.card:hover {max-height: 1000px; /* 实际高度 */
}

这样当鼠标悬停在卡片上时,卡片会平滑地从当前高度过渡到实际高度,实现了缓动动画效果。

Tip1:比较好的效果是设置到实际的大概高度以上,这样缓动更加平滑。

特定例子:鼠标悬浮卡片,显隐按钮

Tip2:最好的效果是将限制设置在动态增长的子元素上而不是card上。

实例:限制button的最大高度即可。
在这里插入图片描述
核心代码:

.btn-group{max-height:0px;overflow:hidden;transition:max-height 0.8s;
}
.card:hover .btn-group{max-height:70px;
}

具体代码可见Codepen:https://codepen.io/yyforreal/pen/RwxxZXN

方法2:使用JavaScript监听卡片内容变化

我们可以使用JavaScript监听卡片内容的变化,并在内容发生变化时更新卡片的高度并增加缓动动画效果。

具体实现步骤如下:

  1. 获取卡片元素和卡片内容元素。
const card = document.querySelector('.card');
const cardContent = document.querySelector('.card-content');
  1. 获取卡片内容元素的高度,并将卡片元素的高度设置为卡片内容元素的高度。
const contentHeight = cardContent.offsetHeight;
card.style.height = `${contentHeight}px`;
  1. 监听卡片内容元素的变化,并根据内容高度的变化来更新卡片的高度。
const observer = new MutationObserver(() => {const newContentHeight = cardContent.offsetHeight;if (newContentHeight !== contentHeight) {card.style.height = `${newContentHeight}px`;}
});
observer.observe(cardContent, { childList: true, subtree: true });
  1. 在CSS中设置卡片的过渡效果。
.card {transition: height .2s ease-in-out;
}

这样当卡片内容发生变化时,卡片的高度会自动调整,并且会有过渡效果实现缓动动画。

方法3:使用CSS的transform属性

我们还可以使用CSS的transition和transform属性来实现缓动动画效果。

具体实现步骤如下:

  1. 在CSS中设置卡片的transform属性为scaleY(0)和scaleY(1),并且设置transform-origin为top。
.card {transform: scaleY(0);transform-origin: top;transition: transform .2s ease-in-out;
}
.card.show {transform: scaleY(1);
}
  1. 使用JavaScript监听卡片内容的变化,并在内容发生变化时,将卡片的class设置为show。这样卡片就会从高度为0的状态缓动到实际高度的状态。
const card = document.querySelector('.card');
const cardContent = document.querySelector('.card-content');new MutationObserver(() => {card.classList.add('show');
}).observe(cardContent, { childList: true, subtree: true });

这样就可以实现卡片高度增加时的缓动动画效果了。

以上就是几种实现卡片高度增加时的缓动动画效果的方法,开发时可以根据实际需求选择适合的方式。

http://www.hengruixuexiao.com/news/32477.html

相关文章:

  • 网站主机购买百度网
  • 网站网页设计方案百度公司招聘条件
  • 网站开发看掉一些功能贵州快速整站优化
  • 龙岩网站建设公司在线排名优化工具
  • 网站开发应用到的技术名词seo网站优化工具大全
  • 怎么做网页表格seo招聘要求
  • 打开无忧管理后台网站外贸网站建设平台
  • 注册网站时手机号格式不正确天津百度推广公司
  • 哈尔滨做网站建设html网页制作成品
  • 携程网站用js怎么做网站建设推广优化
  • 如何配置网站服务器企业培训机构排名前十
  • 秦皇岛抚宁区建设局网站网站推广方案范例
  • vs2008 新建网站网络培训平台
  • 做网站怎么更新静态页免费个人网站制作
  • 商城app源码济南seo怎么优化
  • 怎么做安居客网站企业营销案例
  • 湖南省建设人力资源网站北京seo排名收费
  • 医疗网站开发在线crm网站建站
  • 深圳营销型网站建设服务seo搜索优化公司排名
  • 网站建设单位哪家好如何联系百度人工客服
  • 免费的ppt成品网站大全google网站入口
  • 东莞产品网站建设公司南京网站设计优化公司
  • wordpress微信公众号关注福建网络seo关键词优化教程
  • 蓝色的包装材料企业网站模板建站软件
  • 简述如何对网站进行推广?今天最新新闻
  • 网站策划书免费爱站网关键词密度查询
  • wordpress什么插件好南宁哪里有seo推广厂家
  • cdr做网站分辨率重庆网站优化公司
  • 江苏省政府关于网站建设的通知重庆网站优化软件
  • 集团网站建设方案书查询关键词