如何创建CSS3动画复选框

html-css019

如何创建CSS3动画复选框,第1张

简单的动画”复选框

设置HTML创建一个标准的无序列表(为了方便测试,特别复制出一份代码)

<ul>

<li>

<input type="checkbox" name="manager" id="manager" />

<label for="manager">Project Manager</label>

</li>

<li>

<input type="checkbox" name="webdesigner" id="webdesigner" />

<label for="webdesigner">Web Designer</label>

</li>

<li>

<input type="checkbox" name="webdev" id="webdev" />

<label for="webdev">Web Developer</label>

</li>

<li>

<input type="checkbox" name="seo" id="seo" />

<label for="seo">SEO</label>

</li>

<li>

<input type="checkbox" name="itstaff" id="itstaff" />

<label for="itstaff">IT Staff</label>

</li>

<li>

<input type="checkbox" name="csr" id="csr" />

<label for="csr">Customer Service Representative</label>

</li>

</ul>

首先,隐藏复选框

/* Hide the Ordinary Checkbox */

input[type="checkbox"] {

display: none

}

然后需要在我们的列表和标签标记的相对位置和填充设置一些样式。

下一步需要使用伪代码在标签之前和之后设置样式。对于这部分,我们将设置复选框Font Awesome,用一个矢量图标。

/* Checkbox Icons */

label {

position: relative

padding-left: 30px

font-size: 30px

cursor: pointer

color: #fff

padding: 16px 28px 0 0

}

label:before, label:after {

font-family: FontAwesome

font-size: 50px

/*absolutely positioned*/

position: absolutetop: 0left: -49pxright: 10px

}

现在我们需要设置图标步骤之前和之后的复选框。

label:before {

content: '\f096'/*checkbox unchecked */

}

label:after {

content: '\f00c'/*checkbox checked*/

max-width: 0

overflow: hidden

opacity: 0.5

font-size: 27px

top: 16px

left: -42px

color: #f2ca27

-webkit-transition: all 0.50s

-moz-transition: all 0.50s

-o-transition: all 0.50s

transition: all 0.50s

}

最后一步是设定一个目标,文本框和复选框后的伪代码,并给它一个最大宽度25像素之间和不透明度1。

/* Animating the Checkbox Icon */

input[type="checkbox"]:checked + label:after {

max-width: 25px

opacity: 1

margin-right: 90px

}

你只设置了一个状态,当然只转一次了,采纳即可

<!DOCTYPE html>

<html>

<head>

    <script type="text/javascript" src="/jquery/jquery.js"></script>

    <script type="text/javascript">

        var i = 1

        $(document).ready(function() {

            $("img").click(function() {

                var deg = i == 1 ? 180 : 0

                $("img").css({

                    transform: 'rotateX(' + deg + 'deg)',

                    transition: 'all 2s ease-out'

                })

                i = -i

            })

        })

    </script>

</head>

<body>

    <p><b>180度旋转 onMouseover</b>

    </p>

    <p id="socialicons3">

        <a href="#">

            <img border="0" src="http://www.zzsck.org/wp-content/uploads/2013/10/rss.png" />

        </a>

        <a href="#">

            <img border="0" src="http://www.zzsck.org/wp-content/uploads/2013/10/delicious.png" />

        </a>

        <a href="#">

            <img border="0" src="http://www.zzsck.org/wp-content/uploads/2013/10/facebook.png" />

        </a>

        <a href="#">

            <img border="0" src="http://www.zzsck.org/wp-content/uploads/2013/10/twitter.png" />

        </a>

        <a href="#">

            <img border="0" src="http://www.zzsck.org/wp-content/uploads/2013/10/yahoo.png" />

        </a>

    </p>

</body>

</html>