trick:CSS 3+checkbox实现JQuery的6个基本动画效果

在JQuery中,有六个基本动画函数:show()/hide()、fadeIn()/fadeOut()、slideUp()/slideDown()。这篇文章,就利用CSS3+checkbox实现这六个基本动画。

show()/hide()的实现

show()/hide()的实现主要控制元素的display属性。

html:

<div id="box">
    <input type="checkbox" id="sh"/>
    <label for="sh">show/hide</label>
    <div id="shbox">
        点击上面的show/hide实现show()/hide()
    </div>
</div>

css:

#box{
    position:relative;
}
#box *:not(#shbox){
    display:inline-block;
}
input{
    position:absolute;
    left:-10000000px;
}
:checked~#shbox{
    display:none;
}
label{
    width:100px;
    height:30px;
    line-height:30px;
    text-align:center;
    border:1px solid green;
    position:absolute;
    left:0px;
    cursor:pointer;
    border-radius:5px;
}
#shbox{
    background:#ccc;
    color:red;
    width:200px;
    height:200px;
    border:1px solid blue;
    box-sizing:border-box;
    padding:50px;
    position:absolute;
    top:50px;
}

运行结果:https://jsfiddle.net/dwqs/1LykzL2f/1/embedded/result/

fadeIn()/fadeOut()的实现

fadeIn()/fadeOut()的实现主要是控制元素的opcity属性。html依旧采用上面的,修改css如下:

:checked~#shbox{
    opacity:0;
}

fadeIn()/fadeOut()可以控制渐显/渐退的速度,同样给#shbox添加transition属性可以模拟这个效果:

#shbox{
    transition:opacity 2s;
}

运行效果:https://jsfiddle.net/dwqs/2txfyr1e/embedded/result/

slideUp()/slideDown()的实现

slideUp()/slideDown()通过改变元素的高度来实现上卷和下拉。html依旧采用上面的,css修改如下:

:checked~#shbox{
    height:0px;
}
#shbox{
    background:#ccc;
    overflow-y:hidden;
    color:red;
    width:200px;
    height:200px;
    box-sizing:border-box;
    transition:all 2s;
    position:absolute;
    top:50px;
}

#shbox添加了 overflow-y:hidden,是为了连文本也实现隐藏,不然,#shbox里面的文本仍然会显示; transition实现一个过渡;同时去掉了border属性。

运行结果:https://jsfiddle.net/dwqs/xyu58nu8/3/embedded/result/

总结

  • 主要技巧是利用checkbox(或radio)的checked的属性
  • 对于常见隐藏元素的方法有如下五种:
    1. display:none; //不占空间
    2. height:0px;
    3. opacity:0;
    4. position:absolute;left:-11111111px;
    5. visibility:hidden; //占据空间

      张大大对这方面有更详细的解释:关于CSS隐藏元素的一些方法

原文链接:http://www.ido321.com/1560.html

时间: 2024-08-29 16:44:00

trick:CSS 3+checkbox实现JQuery的6个基本动画效果的相关文章

JQuery实现的模块交换动画效果

<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>JQuery实现的模块交换动画效果</title> <meta name="Keywords" content="jquery,模块,交换,动画,ja

基于jQuery CSS3鼠标点击动画效果

分享基于jQuery CSS3鼠标点击动画效果支持图片或内容滑动,允许设置动画延迟效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="container"> <div class="clearfix"> <div class="grid12 small12"> <div class="demos fl" id="demos&quo

解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果

解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在网上汇总了一些这样的代码. 二.3D效果代码 2.1.旋转相册 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>旋转相

JQuery模拟实现天猫购物车动画效果

测试程序源代码下载地址:源码 一.功能描述: 1.点击购买按钮,模拟抛物线将物品弹到购物车里: 2.购物车添加物品后,显示+1动画: 效果图如下: 实现如下: 1.导入jquery相关的包: <script type="text/javascript" src="jquery-2.1.1.min.js"></script> <script src="jquery.fly.min.js"></script&

jQuery酷炫的文字动画效果代码

jquery css3文字动画特效点击切换文字动态效果 jquery文字动画特效制作淡出淡进文字轮播动画效果代码 jquery文字提示点击按钮触发文字变大消失动画效果 jquery点击按钮淡出淡进动画增加积分数量效果 jquery文字跳舞鼠标滑过段落文字波浪线条跳动 jquery代码控制css background position属性设置文字背景图片动画 jquery文字动画插件制作文字flash动画滤镜效果切换特效

jquery使用CSS3实现文字动画效果插件Textillate.js

Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效果应该于网页中的任何文字. Textillate 下载        案例演示 使用方法 引入核心文件 <link href="assets/animate.css" rel="stylesheet"> <script src="http:/

jQuery简单实用的图片标题动画效果插件

CaptionerJs是一款简单实用的jQuery图片标题动画效果插件.网上有许多图片标题插件,但是CaptionerJs可以为你创建干净整洁并且带有语义的图片标题HTML代码. CaptionerJs不使用div作为图片层,而是使用figure和figcaption元素来转换图片,使图片和图片标题有明确的语义. 你可以在书写图片代码的时候使用标准的HTML图片代码,CaptionerJs会使用title和alt属性来制作图片的标题. 效果演示:http://www.htmleaf.com/De

jQuery实现加入购物车飞入动画效果

当您在电商购物网站浏览中意的商品时,您可以点击页面中的“加入购物车”按钮即可将商品加入的购物车中.本文介绍借助一款基于jQuery的动画插件,点击加入购物车按钮时,实现商品将飞入到右侧的购物车中的效果. HTML 首先载入jQuery库文件和jquery.fly.min.js插件. <script src="jquery.js"></script> <script src="jquery.fly.min.js"></scri

jQuery中的事件和动画效果

刚刚学习了jqyery的一些事件和动画,下面我来总结一下: 1.基础事件 1.window事件,它的对应方法是ready(),$(document).ready()方法是事件模块中最重要的一个函数,可以极大的提高web应用程序的响应速度.(不做过多的讲解) 2.鼠标事件 鼠标事件就是用户在文档上移动或者点击时引发的操作. 1.click(); 2.mouseout(); 3.mouseout(); $(function () { $('li').on('mouseenter',function