• 豌豆资源网
  • 开引网企业服务
  • 服务外包网
  • 大场前端工程师常使用CSS3特性做跨域也是牛逼前端的开始之路

    通过 CSS3 的 content 获取内容,很有意思的一个思路,实际场景中有可能用的到:

    CSST (CSS Text Transformation)

    利用js动态创建一个link插入到文档中, 请求css文件.

    利用 computedStyle = window.getComputedStyle 获取指定元素的 style 对象

    利用 computedStyle .content 获取内容


    服务端可以返回的 css 文件内容:

    @keyframes anima {
      from {}
      to {
        opacity: 0;
      }
    }
    @-webkit-keyframes anima {
      from {}
      to {
        opacity: 0;
      }
    }
    #CSST {
      content: "${text}";
      animation: anima 2s;
      -webkit-animation: anima 2s;
    }

     

     

    ${text}就是我们要填充的数据

    监听函数 animationstart/webkitAnimationStart 来判断css是否加载完成

    给#CSST元素设置动画

    js逻辑:

    function handle () {
      var computedStyle = getComputedStyle(span, false);
      var content = computedStyle.content;
      console.log('content: %s', content);
      var match = content.match(/[\w+=\/]+/);
      // base64解码
      if (match) {
          try {
              content = decodeURIComponent(escape(atob(match[0])));
          } catch (ex) {
              fn(ex);
              return;
          }
      }
      return content
    }
    var CSST = document.getElementById('CSST');
    //监听事件
    CSST.addEventListener('animationstart', handler, false);
    CSST.addEventListener('webkitAnimationStart', handler, false);

    办公资源网址导航 https://www.wode007.com

     

    元素动画启动,就可以获取到 content 里的内容了

     

    posted @ 2020-05-23 13:03  前端一点红  阅读(116)  评论(0编辑  收藏  举报
  • 乐游资源网
  • 热爱资源网
  • 灵活用工代发薪平台
  • 企服知识
  • 355软件知识