• X-Tag实战:给博客加一个隐藏侧栏的功能


    X-Tag是什么?

    X-Tag是一个库,这个库可以让你用面向对象的方式定义自定义标签并给与其功能,很适合用来写一些网页小组件。

    xtag.create('x-clock', class extends XTagElement {
      connectedCallback () {
        this.start();
      }
      start (){
        this.update();
        this._interval = setInterval(() => this.update(), 1000);
      }
      stop (){
        this._interval = clearInterval(this._data.interval);
      }
      update (){
        this.textContent = new Date().toLocaleTimeString();
      }
      'tap::event' (){
        if (this._interval) this.stop();
        else this.start();
      }
    });

    以上,创建一个时钟组件。

    这个功能首先需要一个交互的东西,即一个按钮。

    样式可以写在博客园设置的样式区里。

    .x-switch{
    background-color:#fff;
    border-radius:50%;
    width:30px;
    height:30px;
    position:fixed;
    bottom:20px;
    right:10px;
    box-shadow: 0px 0px 10px #fff;
    cursor:pointer;
    }

    然后就是写交互逻辑,找到了相关DOM的ID就很简单。

    clock.js

    window.$contentStyle = {
      content:''
    }
    
    const Frank = xtag.create('x-switch', class extends XTagElement {
      '::template(true)' (){
        return `<div class="x-switch"></div>`
      }
      'click::event' (){
        if (document.getElementById("leftmenu").style.display !== "none") {
          if (window.$contentStyle.content.length === 0) {
            window.$contentStyle.content = document.getElementById("content").style.marginLeft
          }
          document.getElementById("leftmenu").style.display = "none"
          document.getElementById("content").style.marginLeft = "0"
        } else {
          document.getElementById("leftmenu").style.display = "block"
          document.getElementById("content").style.marginLeft = window.$contentStyle.content
        }
      }
    });
    
    const FrankNode = new Frank();
    FrankNode.render();

    HTML标签的话,设置里的侧边栏、页首、页脚都可以放HTML代码。

    <x-switch></x-switch>

    把自己写的文件 clock.js 和 X-Tag 库的文件传进博客园。

    最后再引用这两个文件。

    用<script>在设置可以放HTML的地方引入。

    <script type="text/javascript" src="http://files.cnblogs.com/foxcharon/x-tag-raw.min.js"></script>
    <script type="text/javascript" src="http://files.cnblogs.com/foxcharon/clock.js"></script>

    最后看一下效果。

     

    交互按钮看起来是这样的:

    以上。

  • 相关阅读:
    会议开饭
    计算时间差(c#和sqlServer)
    sqlserver 新增表字段
    javascript刷新父页面的各种方法汇总
    java 从List中随机取出一个元素
    解决Appium 抓取toast(java篇)
    appium java-client 5.0以后移除了swipe方法,也就是无法使用driver.swipe()了
    appium怎么按下系统按键?如按下返回键、home键等等
    Android 常用 adb 命令总结
    appium Capabilities的各个标签
  • 原文地址:https://www.cnblogs.com/foxcharon/p/11364088.html
Copyright © 2020-2023  润新知