国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

web前端之行為驗(yàn)證碼、不同設(shè)備和屏幕尺寸呈現(xiàn)不同大小、元素寬度根據(jù)視口寬度進(jìn)行調(diào)整、元素或圖片裁剪、圖片驗(yàn)證碼

這篇具有很好參考價(jià)值的文章主要介紹了web前端之行為驗(yàn)證碼、不同設(shè)備和屏幕尺寸呈現(xiàn)不同大小、元素寬度根據(jù)視口寬度進(jìn)行調(diào)整、元素或圖片裁剪、圖片驗(yàn)證碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

1、版本一的樣式比較齊全;
2、版本二的JS邏輯和功能效果比較完善,且是別人的代碼,后續(xù)會(huì)對(duì)樣式進(jìn)行完善。[Gitee | 嗶哩嗶哩];
3、兩個(gè)版本各有千秋,主要學(xué)習(xí)里面的一些技巧,這里主要介紹版本一的樣式技巧;
4、行為驗(yàn)證碼一般是后端實(shí)現(xiàn),而且大概率是使用第三方插件,因?yàn)樯婕暗降倪壿嫼蛢?nèi)容比較多,前后端實(shí)現(xiàn)起來(lái)都比較麻煩。


版本一(html+JS+css)

案例公共樣式

body {
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
}

案例一(clip-path裁剪的應(yīng)用)

<style>
    .clip_path {
        width: 300px;
        height: 300px;
        background-color: #ff0000;
    }
    
    .clip_path:first-child {
        float: left;
        background-color: #0000ff;
        clip-path: inset(50px 20px 30px 40px round 10px);
    }
</style>

<div>
    <div class="clip_path"></div>
    <div class="clip_path"></div>
</div>

案例一解析

代碼塊中包含兩個(gè)<div>元素,每個(gè)元素都有類(lèi)名為clip_path。此外,還有一些CSS樣式被應(yīng)用于這些元素。


CSS樣式部分
1、clip_path類(lèi)指定了一個(gè)固定的寬度(300像素)、高度(300像素)和背景顏色(紅色)的區(qū)域。
2、clip_path:first-child選擇器用于選擇第一個(gè)具有類(lèi)名clip_path的元素,并對(duì)其應(yīng)用特定樣式。
2.1、float: left;將第一個(gè)元素左浮動(dòng),使其在其右側(cè)的元素之前顯示。
2.2、background-color: #0000ff;將第一個(gè)元素的背景顏色更改為藍(lán)色。
2.3、clip-path: inset(50px 20px 30px 40px round 10px);將剪切路徑應(yīng)用于第一個(gè)元素,剪切路徑的形狀是一個(gè)矩形,內(nèi)邊距為50px 20px 30px 40px,并且角是圓形的,半徑為10px。


HTML部分
兩個(gè)<div>元素被包含在一個(gè)外部<div>中。
每個(gè)<div>元素都有類(lèi)名為clip_path,因此它們都受到了相同的CSS樣式的影響。


綜上所述,代碼將顯示兩個(gè)相同大小的紅色方塊,但第一個(gè)方塊的背景顏色為藍(lán)色,并具有一種剪切路徑,使其內(nèi)部形成一個(gè)圓角矩形區(qū)域。


案例一效果圖

html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


案例二(clamp最大值最小值的應(yīng)用)

<style>
	.clamp {
		width: clamp(300px, 50vw, 600px);
		height: 300px;
		background-color: #ff0000;
	}
</style>

<div class="clamp"></div>

案例二解析

一段簡(jiǎn)單的HTML和CSS代碼段,用于創(chuàng)建一個(gè)具有限制寬度的元素。


1、<style>標(biāo)簽用于在HTML文檔中定義CSS樣式。
2、.clamp是一個(gè)CSS類(lèi)選擇器,它用于選擇具有類(lèi)名為"clamp"的HTML元素。
3、width: clamp(300px, 50vw, 600px);是一個(gè)CSS屬性,它使用clamp()函數(shù)來(lái)設(shè)置元素的寬度。clamp()函數(shù)接受三個(gè)參數(shù),分別是最小寬度、首選寬度和最大寬度。在這個(gè)例子中,元素的寬度將被限制在300像素、視窗寬度的50%和600像素之間,以保證在不同設(shè)備和屏幕尺寸下有不同的大小。
4、height: 300px;設(shè)置元素的高度為300像素。
5、background-color: #ff0000;設(shè)置元素的背景顏色為紅色。


<div class=“clamp”></div>是一個(gè)HTML<div>元素,它具有一個(gè)類(lèi)名為"clamp",因此應(yīng)用了上述定義的CSS樣式。這個(gè)<div>元素將具有限制寬度的特性,寬度將根據(jù)視窗寬度和定義的最小和最大寬度進(jìn)行調(diào)整,以便在不同設(shè)備和屏幕尺寸下呈現(xiàn)出不同的大小。


案例二效果圖

html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


功能效果圖

html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html

<div id="captcha">
    <div id="handle">
        <span onmousedown="onmousedownFn()" mousemove="mousemoveFn()"></span>
    </div>
</div>

JavaScript

const captcha = document.querySelector('#captcha');
const handle = document.querySelector('#handle');
const button = document.querySelector('#handle span');
const oLeft = handle.getBoundingClientRect().left;
const buttonWidth = button.getBoundingClientRect().width;
let flag = false;

function onmousedownFn() {
    flag = true;
}

window.addEventListener('mousemove', ({ clientX }) => {
    if (flag) {
        captcha.style.setProperty('--moved', `${clientX - oLeft - buttonWidth / 2}px`);
    }
});

window.addEventListener('mouseup', ({ clientX }) => {
    if (flag) {
        const dis = clientX - oLeft;

        if (dis >= 430 && dis <= 450) {
            captcha.classList.add('passed');
            alert('驗(yàn)證通過(guò)!');
        } else {
            captcha.style.setProperty('--moved', '0px');
        }

        flag = false;
    }
});

style

* {
    margin: 0;
    padding: 0;
}

body {
    --width: 400px;
    --height: 260px;
    --puzzle-width: 80px;
    --puzzle-height: 80px;
    --moved: 0px;
    background-color: #008b8b;
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

#captcha {
    width: var(--width);
    height: var(--height);
    background-image: url('https://cn.bing.com/th?id=OHR.AlmondBloom_ZH-CN9441550492_1920x1080.jpg');
    background-size: cover;
    background-position: center;
    position: relative;
    border-radius: 4px;
    box-shadow: 0px 2px 4px rgba(0, 0, 0, .3);
}

#captcha::before,
#captcha::after {
    display: flex;
    position: absolute;
    content: '';
    width: inherit;
    height: inherit;
    background-image: inherit;
    background-size: inherit;
    background-position: inherit;
    clip-path: inset( calc((var(--height) - var(--puzzle-height)) / 2) var(--puzzle-width) calc((var(--height) - var(--puzzle-height)) / 2) calc(var(--width) - var(--puzzle-width) * 2));
}

#captcha::after {
    transform: translateX(clamp( calc(var(--width) * -1), calc(var(--width) * -1 + var(--moved)), var(--puzzle-width)));
    transition: .25s all ease-in-out;
    cursor: pointer;
}

#captcha:active::after {
    transition: none;
}

#captcha::before {
    background-color: rgba(0, 0, 0, .6);
    background-blend-mode: multiply;
}

#handle {
    height: 30px;
    width: calc(var(--width) + var(--puzzle-width) * 2);
    border-radius: 18px;
    background-color: #eeeeee;
    box-shadow: inset 0 0 12px rgba(0, 0, 0, .2);
    border: 3px solid #eeeeee;
    position: absolute;
    bottom: -50px;
    left: calc(var(--puzzle-width) * 2 * -1);
}

#handle span {
    width: var(--puzzle-width);
    height: inherit;
    display: block;
    border-radius: inherit;
    background-color: #fff;
    box-shadow: 0 0 6px rgba(0, 0, 0, .25), 0 2px 4px rgba(0, 0, 0, .3);
    cursor: move;
    transform: translateX( clamp( 0px, var(--moved), calc(var(--width) + var(--puzzle-width))));
    cursor: pointer;
    transition: .25s all ease-in-out;
}

#captcha:active #handle span {
    transition: none;
}

#captcha.passed::before,
#captcha.passed::after,
#captcha.passed #handle {
    opacity: 0;
}

版本二(html+JS+css+canvas)

效果圖

html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html css3 led 效果 數(shù)字,css,JavaScript,web前端,前端,javascript,html,web前端,css,web


html

<div class="container">
    <div id="captcha" style="position: relative;"></div>
    <div id="msg"></div>
</div>

<script src="./indexV2.js"></script>
<script>
    captcha.init(document.getElementById('captcha'), function() {
        document.getElementById('msg').innerHTML = '驗(yàn)證成功';
        setTimeout(() => {
            document.getElementById('msg').innerHTML = '';
        }, 2000);
    }, function() {
        document.getElementById('msg').innerHTML = '驗(yàn)證失敗';
        setTimeout(() => {
            document.getElementById('msg').innerHTML = '';
        }, 1000);
    })
</script>

JavaScript

(function(win) {
    // 滑塊邊長(zhǎng)
    let l = 42,
        // 滑塊半徑
        r = 10,
        // canvas寬度
        w = 310,
        //canvas高度
        h = 155,
        PI = Math.PI;
    // 滑塊的實(shí)際邊長(zhǎng)
    const ll = l + r * 2;

    // 獲取指定區(qū)間內(nèi)的隨機(jī)數(shù)
    function getRandomNumberByRange(start, end) {
        return Math.round(Math.random() * (end - start) + start);
    }

    // 創(chuàng)建元素
    function createElement(tagName) {
        return document.createElement(tagName);
    }

    // 創(chuàng)建畫(huà)布
    function createCanvas(width, height) {
        const canvas = createElement('canvas');

        canvas.width = width;
        canvas.height = height;

        return canvas;
    }

    // 獲取隨機(jī)圖片
    function getRandomImg() {
        // 這個(gè)網(wǎng)站可以生成隨機(jī)圖片
        return 'https://picsum.photos/300/150/?image=' + getRandomNumberByRange(0, 100);
    }

    // 創(chuàng)建圖片
    function createImg(onload) {
        const img = createElement('img');

        img.crossOrigin = 'Anonymous';
        img.onload = onload;
        img.onerror = () => {
            img.src = getRandomImg();
        }
        img.src = getRandomImg();

        return img;
    }

    // 添加樣式
    function addClass(tag, className) {
        tag.classList.add(className);
    }

    // 移除樣式
    function removeClass(tag, className) {
        tag.classList.remove(className);
    }

    // 繪制
    function draw(ctx, operation, x, y) {
        ctx.beginPath();
        ctx.moveTo(x, y);
        ctx.lineTo(x + l / 2, y);
        ctx.arc(x + l / 2, y - r + 2, r, 0, 2 * PI);
        ctx.lineTo(x + l / 2, y);
        ctx.lineTo(x + l, y);
        ctx.lineTo(x + l, y + l / 2);
        ctx.arc(x + l + r - 2, y + l / 2, r, 0, 2 * PI);
        ctx.lineTo(x + l, y + l / 2);
        ctx.lineTo(x + l, y + l);
        ctx.lineTo(x, y + l);
        ctx.lineTo(x, y);
        ctx.fillStyle = '#fff';
        ctx[operation]();
        ctx.beginPath();
        ctx.arc(x, y + l / 2, r, 1.5 * PI, 0.5 * PI);
        ctx.globalCompositeOperation = 'xor';
        ctx.fill();
    }

    // 求和
    function sum(x, y) {
        return x + y;
    }

    // 求平方
    function square(x) {
        return x * x;
    }

    // 驗(yàn)證碼類(lèi)
    class captcha {
        // 構(gòu)造器
        constructor(el, success, fail) {
            this.el = el;
            this.success = success;
            this.fail = fail;
        }

        // 初始化
        init() {
            this.initDOM();
            this.initImg();
            this.draw();
            this.bindEvents();
        }

        // 初始化DOM
        initDOM() {
            const canvas = createCanvas(w, h),
                block = canvas.cloneNode(true),
                sliderContainer = createElement('div'),
                sliderMask = createElement('div'),
                slider = createElement('div'),
                refreshIcon = createElement('div'),
                sliderIcon = createElement('span'),
                text = createElement('span');

            block.className = 'block';
            sliderContainer.className = 'slider-container';
            sliderMask.className = 'slider-mask';
            slider.className = 'slider';
            refreshIcon.className = 'refresh-icon';
            sliderIcon.className = 'slider-icon';
            text.className = 'slider-text';
            text.innerHTML = '向右滑動(dòng)滑塊填充拼圖';

            const el = this.el;

            el.appendChild(canvas);
            el.appendChild(refreshIcon);
            el.appendChild(block);
            slider.appendChild(sliderIcon);
            sliderMask.appendChild(slider);
            sliderContainer.appendChild(sliderMask);
            sliderContainer.appendChild(text);
            el.appendChild(sliderContainer);

            Object.assign(this, {
                canvas,
                block,
                sliderContainer,
                refreshIcon,
                slider,
                sliderMask,
                sliderIcon,
                text,
                canvasCtx: canvas.getContext('2d'),
                blockCtx: block.getContext('2d')
            });
        }

        // 初始化圖像
        initImg() {
            const img = createImg(() => {
                this.canvasCtx.drawImage(img, 0, 0, w, h);
                this.blockCtx.drawImage(img, 0, 0, w, h);
                const y = this.y - r * 2 + 2;
                const imageData = this.blockCtx.getImageData(this.x, y, ll, ll);
                this.block.width = ll;
                this.blockCtx.putImageData(imageData, 0, y);
            });

            this.img = img;
        }

        // 繪畫(huà)
        draw() {
            this.x = getRandomNumberByRange(ll + 10, w - (ll + 10));
            this.y = getRandomNumberByRange(10 + r * 2, h - (ll + 10));

            draw(this.canvasCtx, 'fill', this.x, this.y);
            draw(this.blockCtx, 'clip', this.x, this.y);
        }

        // 清除
        clean() {
            this.canvasCtx.clearRect(0, 0, w, h);
            this.blockCtx.clearRect(0, 0, w, h);
            this.block.width = w;
        }

        // 綁定事件
        bindEvents() {
            this.el.onselectstart = () => false;
            this.refreshIcon.onclick = () => {
                this.reset();
            }

            let originX, originY, trail = [],
                isMouseDown = false;

            this.slider.addEventListener('mousedown', function(e) {
                originX = e.x;
                originY = e.y;
                isMouseDown = true;
            });
            document.addEventListener('mousemove', (e) => {
                if (!isMouseDown) return false;

                const moveX = e.x - originX;
                const moveY = e.y - originY;

                if (moveX < 0 || moveX + 38 >= w) return false;
                this.slider.style.left = moveX + 'px';
                var blockLeft = (w - 40 - 20) / (w - 40) * moveX;
                this.block.style.left = blockLeft + 'px';
                addClass(this.sliderContainer, 'slider-container-active');
                this.sliderMask.style.width = moveX + 'px';
                trail.push(moveY);
            });
            document.addEventListener('mouseup', (e) => {
                if (!isMouseDown) return false;
                isMouseDown = false;
                if (e.x == originX) return false;
                removeClass(this.sliderContainer, 'slider-container-active');
                this.trail = trail;

                const spliced = this.verify();

                if (spliced) {
                    addClass(this.sliderContainer, 'slider-container-success');
                    this.success && this.success();
                } else {
                    addClass(this.sliderContainer, 'slider-container-fail');
                    this.fail && this.fail();
                    setTimeout(() => {
                        this.reset();
                    }, 1000);
                }
            });
        }

        // 重置
        reset() {
                this.sliderContainer.className = 'slider-container';
                this.slider.style.left = 0;
                this.block.style.left = 0;
                this.sliderMask.style.width = 0;
                this.clean();
                this.img.src = getRandomImg();
                this.draw();
            }
            // 驗(yàn)證
        verify() {
            const left = parseInt(this.block.style.left);
            //10表示容錯(cuò)率,值越小,需要拼得越精確
            return Math.abs(left - this.x) < 10;
        }
    }

    win.captcha = {
        init: function(element, success, fail) {
            new captcha(element, success, fail).init();
        }
    }
}(window));

style文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-854317.html

* {
    margin: 0;
    padding: 0;
    background-color: #333333;
}

body {
    /* 方便演示,滿(mǎn)屏居中 */
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}


/* 小拼圖 */

.block {
    position: absolute;
    left: 0;
    top: 0;
}


/* 滑動(dòng)條 */

.slider-container {
    position: relative;
    text-align: center;
    width: 310px;
    height: 40px;
    line-height: 40px;
    margin-top: 15px;
    background-color: #f7f9fa;
    color: #45454c;
    border: 1px solid #e4e7eb;
}

.slider-mask {
    position: absolute;
    left: 0;
    top: 0;
    height: 40px;
    border: 0px solid #1991fa;
    background-color: #d1e9fe;
}

.slider {
    position: absolute;
    left: 0;
    top: 0;
    width: 40px;
    height: 40px;
    background: #fff;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: background 0.2s linear;
}

.slider-icon {
    position: absolute;
    left: 13px;
    top: 15px;
    width: 14px;
    height: 10px;
    background: url(/images/icon_light.png) 0 -26px;
    background-size: 34px 471px;
}


/* 滑動(dòng)條活動(dòng)態(tài) */

.slider-container-active .slider {
    height: 38px;
    top: -1px;
    border: 1px solid #1991fa;
}

.slider-container-active .slider-mask {
    height: 38px;
    border-width: 1px;
}


/* 滑動(dòng)條成功態(tài) */

.slider-container-success .slider {
    height: 38px;
    top: -1px;
    border: 1px solid #52ccba;
    background-color: #52ccba !important;
}

.slider-container-success .slider-mask {
    height: 38px;
    border: 1px solid #52ccba;
    background-color: #d2f4ef;
}


/* 成功圖標(biāo) */

.slider-container-success .slider-icon {
    background-position: 0 0 !important;
}


/* 滑動(dòng)條失敗態(tài) */

.slider-container-fail .slider {
    height: 38px;
    top: -1px;
    border: 1px solid #f57a7a;
    background-color: #f57a7a !important;
}

.slider-container-fail .slider-mask {
    height: 38px;
    border: 1px solid #f57a7a;
    background-color: #fce1e1;
}


/* 失敗圖標(biāo) */

.slider-container-fail .slider-icon {
    background-position: 0 -83px !important;
}

.slider-container-active .slider-text,
.slider-container-success .slider-text,
.slider-container-fail .slider-text {
    display: none;
}

.slider:hover {
    background: #1991fa;
}

.slider:hover .slider-icon {
    background-position: 0 -13px;
}

.refresh-icon {
    position: absolute;
    right: 0;
    top: 0;
    width: 34px;
    height: 34px;
    background: url(/images/icon_light.png) 0 -437px;
    background-size: 34px 471px;
    cursor: pointer;
}

#msg {
    height: 20px;
    line-height: 20px;
    text-align: center;
    margin-top: 15px;
}

到了這里,關(guān)于web前端之行為驗(yàn)證碼、不同設(shè)備和屏幕尺寸呈現(xiàn)不同大小、元素寬度根據(jù)視口寬度進(jìn)行調(diào)整、元素或圖片裁剪、圖片驗(yàn)證碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【移動(dòng)端網(wǎng)頁(yè)布局】流式布局 ① ( 流式布局簡(jiǎn)介 | 百分比布局 / 非固定像素布局 | 根據(jù)屏幕尺寸 / 設(shè)備類(lèi)型自動(dòng)調(diào)整網(wǎng)頁(yè)布局 )

    【移動(dòng)端網(wǎng)頁(yè)布局】流式布局 ① ( 流式布局簡(jiǎn)介 | 百分比布局 / 非固定像素布局 | 根據(jù)屏幕尺寸 / 設(shè)備類(lèi)型自動(dòng)調(diào)整網(wǎng)頁(yè)布局 )

    流式布局 又稱(chēng)為 百分比布局 / 非固定像素布局 ; 為 流式布局 中 盒子模型 設(shè)置 百分比寬度 , 其大小可以根據(jù)屏幕寬度自適應(yīng)伸縮 , 該盒子沒(méi)有像素限制 , 內(nèi)容自動(dòng)向左右兩邊填充 ; 流式布局 可以 根據(jù) 設(shè)備屏幕尺寸 和 設(shè)備類(lèi)型 自動(dòng)調(diào)整 網(wǎng)頁(yè)布局 和 標(biāo)簽元素大小 , 以適應(yīng)

    2024年02月03日
    瀏覽(19)
  • 邊緣計(jì)算+WEB端應(yīng)用融合:AI行為識(shí)別智能監(jiān)控系統(tǒng)搭建指南 -- 邊緣設(shè)備圖像識(shí)別及部署(二)

    邊緣計(jì)算+WEB端應(yīng)用融合:AI行為識(shí)別智能監(jiān)控系統(tǒng)搭建指南 -- 邊緣設(shè)備圖像識(shí)別及部署(二)

    專(zhuān)欄目錄 邊緣計(jì)算+WEB端應(yīng)用融合:AI行為識(shí)別智能監(jiān)控系統(tǒng)搭建指南 – 整體介紹(一) 歡迎來(lái)到我們的專(zhuān)欄《邊緣計(jì)算+WEB端應(yīng)用融合:AI行為識(shí)別智能監(jiān)控系統(tǒng)搭建指南》!在這個(gè)專(zhuān)欄中,我們將帶您深入探索如何將邊緣計(jì)算和WEB端應(yīng)用相結(jié)合,打造智能監(jiān)控系統(tǒng),實(shí)現(xiàn)對(duì)

    2024年04月13日
    瀏覽(22)
  • Android適配平板屏幕尺寸

    Android適配平板屏幕尺寸

    一、劃分手機(jī)和平板 人為判斷方法: ??? 大于6英寸的就是平板。小于6英寸的都是手機(jī) ??? 平板尺寸:?6英寸、7英寸、10英寸、14英寸… Android系統(tǒng)支持多配置資源文件,我們可以追加新的資源目錄到你的Android項(xiàng)目中。命名規(guī)范: 資源名字-限制符 layout/drawble文件夾 ?? ?說(shuō)

    2024年04月14日
    瀏覽(17)
  • 電腦顯示器屏幕看不清灰色,灰色部分都幾乎呈現(xiàn)白色狀態(tài)的解決辦法。

    電腦顯示器屏幕看不清灰色,灰色部分都幾乎呈現(xiàn)白色狀態(tài)的解決辦法。

    由于顯示器的那根顯示數(shù)據(jù)線(xiàn)出了點(diǎn)問(wèn)題就讓維護(hù)設(shè)備的好哥哥給我換了一根,咱也不曉得到底是VGA線(xiàn),DVI線(xiàn)還是HDMI線(xiàn),總之換了以后,就看不見(jiàn)灰色部分了,全白,其他顏色倒是正常就是灰白不分了。。。 例如: figma設(shè)計(jì)稿上的灰色I(xiàn)nput框:【ps:你看們應(yīng)該是灰白分明,

    2024年02月13日
    瀏覽(99)
  • Unity 物體固定屏幕尺寸(透視模式)

    Unity 物體固定屏幕尺寸(透視模式)

    如圖所示物體遠(yuǎn)離攝像機(jī)后會(huì)被放大,靠近相機(jī)會(huì)被縮小,使得在屏幕上的大小保持不變; 導(dǎo)入插件后使用 gameObject.SetFixedScreenSize 即可啟動(dòng)固定屏幕尺寸功能

    2024年01月16日
    瀏覽(23)
  • C++/Qt獲取屏幕尺寸和放大比例

    直接上代碼 屏幕放大倍數(shù) 100% 125% 150% 200%,對(duì)應(yīng)的dpiVal值為:96、 120、 144 、192。 即上面變量dotPix1、dotPix2、dotPix3、dotPix4獲取的值都是96 120 144 192其中的一個(gè)值。 函數(shù)介紹 1、logicalDotsPerInchX : const qreal This property holds the number of logical dots or pixels per inch in the horizontal direction T

    2023年04月24日
    瀏覽(23)
  • 蘋(píng)果屏幕尺寸和分辨率dpi大全

    蘋(píng)果屏幕尺寸和分辨率dpi大全

    1. DPI 和 PPI 是什么? DPI ---- 最初用于衡量打印物上每英寸的點(diǎn)數(shù)密度,就是表示你的打印機(jī)可以在一英寸內(nèi)打印多少個(gè)點(diǎn)。DPI值越小,打印的內(nèi)容越不清晰。 當(dāng)DPI的概念遷移到計(jì)算機(jī)屏幕上的時(shí)候,就應(yīng)該稱(chēng)之為PPI 。同理:PPI就是表示計(jì)算機(jī)屏幕上每英寸可以顯示的像素點(diǎn)

    2024年02月11日
    瀏覽(20)
  • 【iOS】 各iPhone手機(jī)屏幕尺寸分辨率

    機(jī)型 物理像素 邏輯像素 規(guī)格 對(duì)角線(xiàn) iPhone 14 Pro Max 1290*2796px 430*932pt @3x 6.7英寸 iPhone 14 Pro 1179*2556px 393*852pt @3x 6.1英寸 iPhone 14 Plus 1284*2778px 428*926pt @3x 6.7英寸 iPhone 14 1170*2532px 390*844pt @3x 6.1英寸 iPhone 13 Pro Max 1284*2778px 428*926pt @3x 6.7英寸 iPhone 13 Pro 1170*2532px 390*844pt @3x 6.1英寸 iPhon

    2024年02月12日
    瀏覽(19)
  • Selenium - 改變窗口大小,不同機(jī)型呈現(xiàn)的寬高長(zhǎng)度會(huì)不一樣

    Selenium - 改變窗口大小,不同機(jī)型呈現(xiàn)的寬高長(zhǎng)度會(huì)不一樣

    最近接觸到 UI 測(cè)試,涉及到這樣一個(gè)場(chǎng)景,改變頁(yè)面大小,驗(yàn)證頁(yè)面一個(gè)輸入框默認(rèn)提示符會(huì)有不同。例如:頁(yè)面寬度設(shè)置成小于等于 1024,應(yīng)該顯示短的提示符,大于 1204 顯示長(zhǎng)的提示符。Case 在本地都是通過(guò)的,但是日常 Jenkins 運(yùn)行在 Remote VM 上,盡然跟期望的不一致。

    2024年02月02日
    瀏覽(21)
  • 在OpenHarmony設(shè)備上呈現(xiàn)PDF文件內(nèi)容pdfjs 【堅(jiān)果派】

    JavaScript實(shí)現(xiàn)解析和展示PDF,可以在OpenHarmony設(shè)備上呈現(xiàn)PDF文件內(nèi)容。 使用npm install 安裝 配置全局resourceManager pdfjs 獲取資源文件需要在EntryAbility文件配置全局resourceManager 1.使用getDocument(src:Uint8Array)方式加載要打開(kāi)的PDF文件數(shù)據(jù)。 2.通過(guò)加載任務(wù)對(duì)象獲取PDF文檔中的各個(gè)頁(yè)面。

    2024年02月05日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包