第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用CSS(和JavaScript?)創(chuàng)建模糊的“磨砂”背景?

如何使用CSS(和JavaScript?)創(chuàng)建模糊的“磨砂”背景?

三國紛爭 2019-11-27 11:15:06
我正在嘗試使用HTML5,CSS3和JavaScript創(chuàng)建可在Webkit瀏覽器上使用的iOS 7樣式磨砂外觀。從技術(shù)上講,給出以下HTML:<style>  #partial-overlay {    width: 100%;    height: 20px;    background: rgba(255, 255, 255, .2); /* TODO frost */    position: fixed;    top: 0;    left: 0;  }</style><div id="main-view">  <div style="width: 50px; height: 50px; background: #f00"></div>  To my left is a red box<br>  Now there is just text<br>  Text that goes on for a few pixels <br>  or even more</div><div id="partial-overlay">  Here is some content</div>我想-webkit-filter: blur(5px)對(duì)的第一個(gè)20px水平應(yīng)用類似a 的內(nèi)容#main-view。如果將CSS修改為,#partial-overlay { width: 20px; height: 100%; ...}則需要將其-webkit-filter: blur(5px)垂直應(yīng)用于前20px。顯而易見的解決方案是使用javascript來克隆#main-view,設(shè)置overflow: hidden,然后適當(dāng)?shù)馗膶挾?高度,但是在我看來,很難將其推廣到更復(fù)雜的頁面/ CSS結(jié)構(gòu)。有沒有更好的方法來實(shí)現(xiàn)此目標(biāo),而又不會(huì)降低性能影響并最大程度地提高了通用性?
查看完整描述

3 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

-webkit-和Firefox Working Example,現(xiàn)在可調(diào)整大小/流暢。


JS


$(document).ready(function () {

    frost = function () {

        var w = $('#main-view').width();

        html2canvas(document.body, {

            onrendered: function (canvas) {

                document.body.appendChild(canvas);

                $('canvas').wrap('<div id="contain" />');

            },

            width: w,

            height: 30

        });

        $('canvas, #partial-overlay, #cover').hide();

        $('#cover').fadeIn('slow', function () {

            $('#partial-overlay').fadeIn('slow');

        });

    };


    $('body').append('<div id="cover"></div><svg id="svg-image-blur"><filter id="blur-effect-1"><feGaussianBlur stdDeviation="2"/></filter></svg>');


    $('#main-view').click(function () {

        frost();

        $('#partial-overlay').addClass('vis');

        $(window).resize(function () {

            $('canvas, #partial-overlay, #cover').hide();

        });


        function onResize() {

            if ($('#partial-overlay').hasClass('vis')) {

                frost();

            }

        }

        var timer;

        $(window).bind('resize', function () {

            timer && clearTimeout(timer);

            timer = setTimeout(onResize, 50);

        });


    });


    $('#partial-overlay').click(function () {

        $('#partial-overlay').removeClass('vis');

        $('canvas, #partial-overlay, #cover').hide();

    });

});

的CSS


#main-view {

    width:75%;

    height:50%;

    box-sizing: border-box;

    margin:8px;

}

#partial-overlay {

    display:none;

    width: 100%;

    height: 20px;

    position: absolute;

    top: 0;

    left: 0;

    z-index:99;

    background: rgba(255, 255, 255, 0.2);

    cursor:pointer;

}

canvas {

    position: absolute;

    top: 0;

    left: 0;

    -webkit-filter:blur(5px);

    filter: url(#blur-effect-1);

}

#cover {

    display:none;

    height:19px;

    width:100%;

    background:#fff;

    top:0;

    left:0;

    position:absolute;

}

#contain {

    height:20px;

    width:100%;

    overflow:hidden;

    position:absolute;

    top:0;

    left:0;

}

svg {

    height:0;

    width:0;

}

的HTML


<div id="main-view">

    <div style="width: 10%; height: 20%; background: #f00; float: left"></div>To my left is a red box

    <br>Now there is just text

    <br>Text that goes on for a few pixels

    <br>or even more</div>

<div id="partial-overlay">Here is some content</div>

我將其放在click函數(shù)中,因?yàn)槲艺J(rèn)為這將是最可能的用例。在準(zhǔn)備好文檔時(shí),它將同樣有效。


盡管畫布表示不會(huì)是完美的像素,但我認(rèn)為在大多數(shù)情況下它并不重要,因?yàn)槠淠:恕?/p>


更新:根據(jù)要求,現(xiàn)在可以調(diào)整大小。我還將Cover div移到了JS中,并為Firefox添加了一個(gè)svg后備。調(diào)整大小要求在每次調(diào)整大小時(shí)都重新繪制畫布,因此我將其設(shè)置為在調(diào)整大小時(shí)隱藏畫布,覆蓋圖等,然后在調(diào)整大小停止時(shí)替換畫布。


查看完整回答
反對(duì) 回復(fù) 2019-11-27
  • 3 回答
  • 0 關(guān)注
  • 1372 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)