黑帽联盟

 找回密码
 会员注册
查看: 1214|回复: 0
打印 上一主题 下一主题

[其它] 使用JavaScript触发过渡效果的方法

[复制链接]

148

主题

9

听众

337

积分

版主

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    擦汗
    2018-6-6 11:33
  • 签到天数: 348 天

    [LV.8]以坛为家I

    使用 :hover 和 :focus 这样的伪类,我们可以很方便的将元素从一个样式切换到另一个样式,而且切换是会有过渡效果。但有时我们想要使用 js 来驱动过渡(即在代码中触发过渡)也是可以实现的。

    和普通过渡一样,先创建两个样式规则,一个是元素的初始状态,一个是过渡结束的状态。然后用 js 在合适的事机修改对应元素的样式即可。

    下面以一个日夜景图片切换的样例演示:
    11.png

    (1)日景和夜景是两张图片叠在一起的。夜景图初始透明度是0,覆盖在日景图上方。
    (2)点击“看夜景”按钮,夜景图透明度逐渐从0过渡到1,看起来画面慢慢变成夜景。
    (3)点击“看日景”按钮,夜景图透明度逐渐又从1过渡到0,看起来画面恢复成日景。

    在线样例如下:
    1. <!doctype html>
    2. <html lang="en">
    3. <head>
    4. <title>hangge.com</title>
    5. <style>
    6. img {
    7.   position:absolute;
    8.   transition: opacity 5s;
    9.   -webkit-transition: opacity 5s;
    10. }
    11. .solid {
    12.   opacity: 1;
    13. }
    14. .transparent {
    15.   opacity: 0;
    16. }
    17. </style>
    18. <script>
    19.   function toNight(){
    20.       var nightImage = document.getElementById("nightImage");
    21.       nightImage.className = "solid";
    22.   }
    23.   function toDay(){
    24.       var nightImage = document.getElementById("nightImage");
    25.       nightImage.className = "transparent";
    26.   }
    27. </script>
    28. </head>
    29. <body>
    30.   <button onclick="toNight()">看夜景</button>
    31.   <button onclick="toDay()">看日景</button>
    32.   <div>
    33.     <img src="day.png" alt="日景"/>
    34.     <img src="night.png" alt="夜景" id="nightImage" class="transparent"/>
    35.   </div>
    36. </body>
    37. </html>
    复制代码
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部