欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

使用electron實現(xiàn)滿屏愛心的方法

這篇文章主要介紹了使用electron實現(xiàn)滿屏愛心的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、京山網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

圖片被壓縮了 看起來有點難看

使用electron實現(xiàn)滿屏愛心的方法

主進程代碼

import {BrowserWindow, app, ipcMain} from 'electron'

createWindow();

ipcMain.on('quitApp', () => {
    app.quit();
});

function createWindow() {

    const loginURL = process.env.NODE_ENV === 'development' ? `http://localhost:9080` : `file://${__dirname}/index.html`;
    const win = new BrowserWindow({

        alwaysOnTop: true,
        modal: true,
        width: 1200,
        height: 6500,
        frame: false,
        show: false,
        darkTheme: true,
        resizable: false,
        minimizable: false,
        maximizable: false,
        transparent: true,
        type: 'toolbar',
        webPreferences: {
            devTools: false,
        }
    });
    win.loadURL(loginURL);
    win.once('ready-to-show', () => {
        win.show();
    });
}

渲染進程代碼

界面代碼

<template>
    <div style="position: absolute;width: 95%;height: 95%;border-radius: 10px;-webkit-app-region: drag">
        <canvas ref="drawHeart" id="drawHeart"></canvas>
    </div>
</template>

js代碼

 mounted() {
            var hearts = [];
            var canvas = this.$refs.drawHeart;
            var wW = 1920;
            var wH = 1040;
            // 創(chuàng)建畫布
            var ctx = canvas.getContext('2d');
            // 創(chuàng)建圖片對象
            var heartImage = new Image();
            heartImage.src = img;
            var num = 100;

            init();

            window.addEventListener('resize', function(){
                wW = window.innerWidth;
                wH = window.innerHeight;
            });
            // 初始化畫布大小
            function init(){
                canvas.width = wW;
                canvas.height = wH;
                for(var i = 0; i < num; i++){
                    hearts.push(new Heart(i%5));
                }
                requestAnimationFrame(render);
            }

            function getColor(){
                var val = Math.random() * 10;
                if(val > 0 && val <= 1){
                    return '#00f';
                } else if(val > 1 && val <= 2){
                    return '#f00';
                } else if(val > 2 && val <= 3){
                    return '#0f0';
                } else if(val > 3 && val <= 4){
                    return '#368';
                } else if(val > 4 && val <= 5){
                    return '#666';
                } else if(val > 5 && val <= 6){
                    return '#333';
                } else if(val > 6 && val <= 7){
                    return '#f50';
                } else if(val > 7 && val <= 8){
                    return '#e96d5b';
                } else if(val > 8 && val <= 9){
                    return '#5be9e9';
                } else {
                    return '#d41d50';
                }
            }

            function getText(){
                var val = Math.random() * 10;
                if(val > 1 && val <= 3){
                    return '愛你一輩子';
                } else if(val > 3 && val <= 5){
                    return '感謝你';
                } else if(val > 5 && val <= 8){
                    return '喜歡你';
                } else{
                    return 'I Love You';
                }
            }

            function Heart(type){
                this.type = type;
                // 初始化生成范圍
                this.x = Math.random() * wW;
                this.y = Math.random() * wH;

                this.opacity = Math.random() * .5 + .5;

                // 偏移量
                this.vel = {
                    x: (Math.random() - .5) * 5,
                    y: (Math.random() - .5) * 5
                }

                this.initialW = wW * .5;
                this.initialH = wH * .5;
                // 縮放比例
                this.targetScale = Math.random() * .15 + .02; // 最小0.02
                this.scale = Math.random() * this.targetScale;

                // 文字位置
                this.fx = Math.random() * wW;
                this.fy = Math.random() * wH;
                this.fs = Math.random() * 10;
                this.text = getText();

                this.fvel = {
                    x: (Math.random() - .5) * 5,
                    y: (Math.random() - .5) * 5,
                    f: (Math.random() - .5) * 2
                }
            }

            Heart.prototype.draw = function(){
                ctx.save();
                ctx.globalAlpha = this.opacity;
                ctx.drawImage(heartImage, this.x, this.y, this.width, this.height);
                ctx.scale(this.scale + 1, this.scale + 1);
                if(!this.type){
                    // 設置文字屬性
                    ctx.fillStyle = getColor();
                    ctx.font = 'italic ' + this.fs + 'px sans-serif';
                    // 填充字符串
                    ctx.fillText(this.text, this.fx, this.fy);
                }
                ctx.restore();
            }
            Heart.prototype.update = function(){
                this.x += this.vel.x;
                this.y += this.vel.y;

                if(this.x - this.width > wW || this.x + this.width < 0){
                    // 重新初始化位置
                    this.scale = 0;
                    this.x = Math.random() * wW;
                    this.y = Math.random() * wH;
                }
                if(this.y - this.height > wH || this.y + this.height < 0){
                    // 重新初始化位置
                    this.scale = 0;
                    this.x = Math.random() * wW;
                    this.y = Math.random() * wH;
                }

                // 放大
                this.scale += (this.targetScale - this.scale) * .1;
                this.height = this.scale * this.initialH;
                this.width = this.height * 1.4;

                // -----文字-----
                this.fx += this.fvel.x;
                this.fy += this.fvel.y;
                this.fs += this.fvel.f;

                if(this.fs > 50){
                    this.fs = 2;
                }

                if(this.fx - this.fs > wW || this.fx + this.fs < 0){
                    // 重新初始化位置
                    this.fx = Math.random() * wW;
                    this.fy = Math.random() * wH;
                }
                if(this.fy - this.fs > wH || this.fy + this.fs < 0){
                    // 重新初始化位置
                    this.fx = Math.random() * wW;
                    this.fy = Math.random() * wH;
                }
            }

            function render(){
                ctx.clearRect(0, 0, wW, wH);
                for(var i = 0; i < hearts.length; i++){
                    hearts[i].draw();
                    hearts[i].update();
                }
                requestAnimationFrame(render);
            }

        }

擴展功能

全屏展示

const size = screen.getPrimaryDisplay().workAreaSize;   //獲取顯示器的寬高
win.setSet(size.width size.height);
win.setPosition(0,0);

這樣就會讓窗口全屏 但是有一個問題 就是這樣做界面不會正確響應 我們可以使用進程通信去解決

win.webContents.sen('windowSize',size);

之后再主進程中監(jiān)聽就行了

窗口點擊穿透

以上代碼會有一個問題 就是一旦運行 就不能關閉了

win.setIgnoreMouseEvents(true) 就可以讓界面只做展示使用 鼠標可以點擊你窗口的任意區(qū)域

感謝你能夠認真閱讀完這篇文章,希望小編分享使用electron實現(xiàn)滿屏愛心的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!

文章題目:使用electron實現(xiàn)滿屏愛心的方法
當前地址:http://chinadenli.net/article22/jsigcc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)網(wǎng)站制作、建站公司手機網(wǎng)站建設、網(wǎng)站收錄虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
果冻传媒在线观看免费高清| 国产伦精品一区二区三区高清版 | 白丝美女被插入视频在线观看| 国产av精品一区二区| 国产精品日韩欧美一区二区| 亚洲中文在线观看小视频| 欧美日韩人妻中文一区二区| 亚洲中文字幕在线综合视频| 五月综合婷婷在线伊人| 国产精品日韩精品一区| 中文字幕一区二区熟女| 一级片黄色一区二区三区| 日韩一级欧美一级久久| 丰满人妻熟妇乱又伦精另类视频| 国产美女精品午夜福利视频 | 国产一级特黄在线观看| 一区中文字幕人妻少妇| 精品少妇人妻一区二区三区 | 国产三级欧美三级日韩三级| 日韩中文字幕在线不卡一区| 国产欧美韩日一区二区三区| 丰满少妇被粗大猛烈进出视频| 色婷婷激情五月天丁香| 国产老熟女超碰一区二区三区| 九九热视频网在线观看| 日韩免费国产91在线| 五月婷婷六月丁香狠狠| 国产成人精品一区二区在线看| 精品国产成人av一区二区三区| 日本高清一道一二三区四五区| 丰满的人妻一区二区三区| 91亚洲国产—区=区a| 亚洲国产综合久久天堂| 内射精子视频欧美一区二区| 国产免费黄片一区二区| 亚洲欧洲一区二区中文字幕| 中文文精品字幕一区二区| 日韩成人中文字幕在线一区| 国产精品欧美激情在线| 91久久国产福利自产拍| 欧美特色特黄一级大黄片|