当前位置:   article > 正文

鼠标点击反馈效果(基于css3动画)_点击鼠标获得反馈的页面

点击鼠标获得反馈的页面

网上多是基于js-setTimeout及setInterval实现的动画效果,此篇基于css3-transition实现。

浮出符号效果:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv=Content-Type content="text/html;charset=utf-8">
  5. </head>
  6. <body></body>
  7. <script>
  8. var clickCount = 0;
  9. document.onclick = function(e) {
  10. /**
  11. * 根据鼠标点击坐标初始化dom,通过过渡属性实现动画效果
  12. * dom渲染完成后设置目标偏移位置及目标透明度
  13. * 过渡结束后移除dom
  14. * @author:slzs
  15. */
  16. var symbol = document.createElement("b");
  17. symbol.style.position = "absolute";
  18. symbol.style.left = (e.pageX - 10) + "px";
  19. symbol.style.top = (e.pageY - 15) + "px";
  20. symbol.style.zIndex = 9999;
  21. symbol.style.userSelect = "none"; // 禁止文本被选中,影响美观
  22. symbol.style.fontSize = "18px";
  23. symbol.style.color = `rgb(${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)})`; // 随机颜色
  24. symbol.style.transition="all 1.5s";
  25. symbol.addEventListener("transitionend",function(et){ // 动画结束移除dom
  26. if(et.propertyName == "opacity" && et.srcElement.style.opacity==0)
  27. et.srcElement.remove();
  28. });
  29. // 轮换几个预制字符
  30. switch(++clickCount){
  31. case 1:
  32. symbol.innerText = "✔";
  33. break;
  34. case 2:
  35. symbol.innerText = "❤";
  36. break;
  37. default:
  38. symbol.innerText = "☺";
  39. clickCount = 0;
  40. }
  41. document.body.appendChild(symbol);
  42. requestAnimationFrame(()=>{
  43. symbol.style.top = (e.pageY - 100) + "px";
  44. symbol.style.opacity = 0;
  45. });
  46. };
  47. </script>
  48. </html>

 水波纹效果:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv=Content-Type content="text/html;charset=utf-8">
  5. </head>
  6. <body></body>
  7. <script>
  8. document.onclick = function(e) {
  9. /**
  10. * 根据鼠标点击坐标初始化dom,通过过渡属性实现动画效果
  11. * dom渲染完成后设置目标偏移位置及目标透明度
  12. * 过渡结束后移除dom
  13. * @author:slzs
  14. */
  15. var symbol = document.createElement("div");
  16. symbol.style.position = "absolute";
  17. symbol.style.left = (e.pageX) + "px";
  18. symbol.style.top = (e.pageY) + "px";
  19. symbol.style.zIndex = 9999;
  20. symbol.style.transition="all 1.5s";
  21. symbol.style.border="1px red solid";
  22. symbol.style.borderColor = `rgb(${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)})`; // 随机颜色
  23. symbol.style.borderRadius="100%";
  24. symbol.style.width = "0px";
  25. symbol.style.height = "0px";
  26. symbol.addEventListener("transitionend",function(et){ // 动画结束移除dom
  27. if(et.propertyName == "opacity" && et.srcElement.style.opacity==0)
  28. et.srcElement.remove();
  29. });
  30. document.body.appendChild(symbol);
  31. requestAnimationFrame(()=>{
  32. symbol.style.width = "80px";
  33. symbol.style.margin = "-7px -40px";
  34. symbol.style.height = "14px";
  35. symbol.style.opacity = 0;
  36. });
  37. };
  38. </script>
  39. </html>

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号