标签: 字符

  • Antd5一出,治好了我组件库选择内耗,我直接搭配React18+Vite+Ts做了一个管理后台

    Antd5一出,治好了我组件库选择内耗,我直接搭配React18+Vite+Ts做了一个管理后台

    本文为稀土技能社区首发签约文章,14天内制止转载,14天后未获授权制止转载,侵权必究!

    (更多…)

  • 盘点Vue2和Vue3的10种组件通信方式(值得收藏)

    携手创作,共同生长!这是我参与「日新计划 8 月更文应战」的第5天,点击检查活动详情

    (更多…)

  • 在 JavaScript 中,什么时候使用 Map 或胜过 Object

    在 JavaScript 中,什么时候使用 Map 或胜过 Object

    本文首发于微信公众号:大迁国际, 我的微信:qq449245884,我会第一时刻和你分享前端职业趋势,学习途径等等。 (更多…)

  • 开发人员面临的10个最常见的JavaScript问题

    微信搜索 【大迁国际】, 我会第一时刻和你分享前端职业趋势,学习途径等等。 (更多…)

  • 你知道前端水印功能是怎么实现的吗?

    你知道前端水印功能是怎么实现的吗?

    携手创造,一起成长!这是我参加「日新计划 8 月更文应战」的第4天,点击检查活动详情。

    (更多…)

  • 【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件
    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    新建HTML和JS

    在装备项中的content_scriptschrome_url_overrides中别离界说了html文件和js文件,所以咱们需求新建这两个文件,称号对应即可。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    HTML布景

    没有哪个小天使能够回绝来自程序猿蛮横的满屏小心心好吗? 接下来我来教咱们做一个飘满屏的爱心。

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Every Day About You</title>
        <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
        <script type="text/javascript" src="canvas.js" ></script>
      </head>
      <body>
        <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas>
      </body>
    </html>
    
    • 这儿引入的 jquery 是 百度 的CDN(matches中装备了能够运用一切的URL,所以CDN是能够运用外部链接的。)
    • canvas.js中主要是针对爱心和布景色进行绘画。

    canvas

    $(document).ready(function () {
      var canvas = document.getElementById("c");
      var ctx = canvas.getContext("2d");
      var c = $("#c");
      var w, h;
      var pi = Math.PI;
      var all_attribute = {
        num: 100, // 个数
        start_probability: 0.1, // 假如数量小于num,有这些几率增加一个新的     		     
        size_min: 1, // 初始爱心巨细的最小值
        size_max: 2, // 初始爱心巨细的最大值
        size_add_min: 0.3, // 每次变大的最小值(便是速度)
        size_add_max: 0.5, // 每次变大的最大值
        opacity_min: 0.3, // 初始透明度最小值
        opacity_max: 0.5, // 初始透明度最大值
        opacity_prev_min: .003, // 透明度递减值最小值
        opacity_prev_max: .005, // 透明度递减值最大值
        light_min: 0, // 色彩亮度最小值
        light_max: 90, // 色彩亮度最大值
      };
      var style_color = find_random(0, 360);
      var all_element = [];
      window_resize();
      function start() {
        window.requestAnimationFrame(start);
        style_color += 0.1;
        //更改布景色hsl(色彩值,饱和度,明度)
        ctx.fillStyle = 'hsl(' + style_color + ',100%,97%)';
        ctx.fillRect(0, 0, w, h);
        if (all_element.length < all_attribute.num && Math.random() < all_attribute.start_probability) {
          all_element.push(new ready_run);
        }
        all_element.map(function (line) {
          line.to_step();
        })
      }
      function ready_run() {
        this.to_reset();
      }
      function arc_heart(x, y, z, m) {
        //制作爱心图画的办法,参数x,y是爱心的初始坐标,z是爱心的巨细,m是爱心上升的速度
        y -= m * 10;
        ctx.moveTo(x, y);
        z *= 0.05;
        ctx.bezierCurveTo(x, y - 3 * z, x - 5 * z, y - 15 * z, x - 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x - 55 * z, y - 15 * z, x - 55 * z, y + 22.5 * z, x - 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x - 55 * z, y + 40 * z, x - 35 * z, y + 62 * z, x, y + 80 * z);
        ctx.bezierCurveTo(x + 35 * z, y + 62 * z, x + 55 * z, y + 40 * z, x + 55 * z, y + 22.5 * z);
        ctx.bezierCurveTo(x + 55 * z, y + 22.5 * z, x + 55 * z, y - 15 * z, x + 25 * z, y - 15 * z);
        ctx.bezierCurveTo(x + 10 * z, y - 15 * z, x, y - 3 * z, x, y);
      }
      ready_run.prototype = {
        to_reset: function () {
          var t = this;
          t.x = find_random(0, w);
          t.y = find_random(0, h);
          t.size = find_random(all_attribute.size_min, all_attribute.size_max);
          t.size_change = find_random(all_attribute.size_add_min, all_attribute.size_add_max);
          t.opacity = find_random(all_attribute.opacity_min, all_attribute.opacity_max);
          t.opacity_change = find_random(all_attribute.opacity_prev_min, all_attribute.opacity_prev_max);
          t.light = find_random(all_attribute.light_min, all_attribute.light_max);
          t.color = 'hsl(' + style_color + ',100%,' + t.light + '%)';
        },
        to_step: function () {
          var t = this;
          t.opacity -= t.opacity_change;
          t.size += t.size_change;
          if (t.opacity <= 0) {
            t.to_reset();
            return false;
          }
          ctx.fillStyle = t.color;
          ctx.globalAlpha = t.opacity;
          ctx.beginPath();
          arc_heart(t.x, t.y, t.size, t.size);
          ctx.closePath();
          ctx.fill();
          ctx.globalAlpha = 1;
        }
      }
      function window_resize() {
        w = window.innerWidth;
        h = window.innerHeight;
        canvas.width = w;
        canvas.height = h;
      }
      $(window).resize(function () {
        window_resize();
      });
      //回来一个介于参数1和参数2之间的随机数
      function find_random(num_one, num_two) {
        return Math.random() * (num_two - num_one) + num_one;
      }
      start();
    });
    
    • 因为运用了jquery的CDN,所以咱们在js中就能够直接运用 $(document).ready办法

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    土豪金色的标题

    为了时间展现出对 TA 的爱,咱们除了在布景中体现出来之外,还能够再文字中体现出来,所以需求取一个充溢爱意的标题。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
      </div>
    </body>
    
    <style>
      @import url("https://fonts.googleapis.com/css?family=Aleo");
      :root {
        font-family: "Aleo", sans-serif;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
      }
      .middle {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
        user-select: none;
      }
      .label {
        font-size: 2.2rem;
        background: url("text_bg.png");
        background-clip: text;
        -webkit-background-clip: text;
        color: transparent;
        animation: moveBg 30s linear infinite;
      }
      @keyframes moveBg {
        0% {
          background-position: 0% 30%;
        }
        100% {
          background-position: 1000% 500%;
        }
      }
    </style>
    
    • 这儿引入了googleapis中的字体款式。
    • 给label一个布景,并运用了动画作用。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 这个便是文字后边的静态图片,能够另存为然后运用的哦~

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    百度搜索框

    关于你心爱的 TA 来说,不论干什么估量都得用百度直接搜出来,就算是看个优酷、微博都不会记住域名,都会直接去百度一下,所以咱们需求在标签页中直接集成百度搜索。让 TA 能够高枕无忧的搜索想要的东西。

    因为现在百度搜索框不能直接去站长东西中获取了,所以咱们能够参阅标签页插件中的百度搜索框。

    依据的标签页插件咱们能够发现,输入成果之后,直接跳转到百度的网址,并在url后边携带了一个 wd 的参数,wd 也便是咱们输入的内容了。

    www.baidu.com/s?wd=这儿是输入的…

    <div class="search">
      <input id="input" type="text">
      <button>百度一下</button>
    </div>
    
    <script>
      var input = document.getElementById("input")
      var btn = document.querySelector('button')
      btn.addEventListener('click', function () {
        location.href = 'http://www.baidu.com/s?wd=' + input.value
      })
    </script>
    
    .search {
      width: 750px;
      height: 50px;
      margin: auto;
      display: flex;
      justify-content: center;
      align-content: center;
      min-width: 750px;
      position: relative;
    }
    input {
      width: 550px;
      height: 40px;
      border-right: none;
      border-bottom-left-radius: 10px;
      border-top-left-radius: 10px;
      border-color: #f5f5f5;
      /* 去除搜索框激活状况的边框 */
      outline: none;
    }
    input:hover {
      /* 鼠标移入状况 */
      box-shadow: 2px 2px 2px #ccc;
    }
    input:focus {
      /* 选中状况,边框色彩改变 */
      border-color: rgb(78, 110, 242);
    }
    .search span {
      position: absolute;
      font-size: 23px;
      top: 10px;
      right: 170px;
    }
    .search span:hover {
      color: rgb(78, 110, 242);
    }
    button {
      width: 100px;
      height: 44px;
      background-color: rgb(78, 110, 242);
      border-bottom-right-radius: 10px;
      border-top-right-radius: 10px;
      border-color: rgb(78, 110, 242);
      color: white;
      font-size: 14px;
    }
    

    关于 TA

    这儿能够放置你们之间的一些生日,纪念日等等,也能够放置你想放置的任何浪漫,典礼感满满~

    假如你不记得两个人之间的纪念日,那就换其他的日子吧。比方你和 TA 闺蜜的纪念日也能够。

    <body>
      <canvas id="c" style="position: absolute;z-index: -1;text-align: center;"></canvas> 
      <div class="middle">
        <h1 class="label">Every Day About You</h1>
        <div class="time">
          <span>
            <div id="d">
              00
            </div>
            Love day
          </span> <span>
            <div id="h">
              00
            </div>
            First Met
          </span> <span>
            <div id="m">
              00
            </div>
            birthday
          </span> <span>
            <div id="s">
              00
            </div>
            age
          </span>
        </div>
      </div>
      <script type="text/javascript" src="demo.js"></script>
    </body>
    
    • 这儿我界说了四个日期,爱情纪念日、相识纪念日、TA 的生日、TA 的年纪。
    • 在页面最终引证了一个js文件,主要是等候页面烘托完结之后调用js去核算日期的逻辑。
    爱情纪念日
    var date1 = new Date('2019-10-07')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    const d = document.getElementById("d");
    d.innerHTML = getTrueNumber(day);
    
    相识纪念日
    var date1 = new Date('2019-09-20')
    var date2 = new Date()
    var s1 = date1.getTime(),
      s2 = date2.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60)); //核算整数天数
    h.innerHTML = getTrueNumber(day);
    
    公共办法(将核算出来的日子转为绝对值)
    const getTrueNumber = x => (x < 0 ? Math.abs(x) : x);
    

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    因为生日和年纪的核算代码有些多,所以放在码上中展现了。

    增加到chrome浏览器中

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    开发完结之后,一切的文件便是这样的了,里边的icon能够依据自己的喜爱去规划或许网上下载。

    运用chrome浏览器翻开:chrome://extensions/ 即可跳转到增加扩展程序页面。

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    • 翻开右上角的开发者形式
    • 点击加载已解压的扩展程序
    • 挑选自己的chrome标签页项目目录即可

    【程序员的浪漫】七夕到了,还不快给你女朋友做一个专属chrome插件

    总结一下

    为了让心爱的 TA 高兴,作为程序员的咱们可谓是煞费苦心呀!!

    在给目标装置插件的时分,发现了一个小问题,或许是chrome版别原因,导致jquery的cdn无法直接引证,所以或许需求手动把jquery保存到项目文件中,然后在manifest.json装备js的当地把jquery的js加上即可。

    码上中我现已把jquery的代码、canvas的代码、核算纪念日的代码都放进去了,能够直接复制到自己项目中哦!!!

    七夕节快到了,祝福全国有情人终成眷属!

    我正在参与「构思开发 投稿大赛」概况请看:构思开发大赛来了!

  • 从0制作一个pc端网易云

    从0制作一个pc端网易云

    持续创作,加速生长!这是我参加「日新方案 10 月更文挑战」的第19天,点击检查活动详情

    (更多…)