# 通过模糊弱化背景

背景知识: css-boxshadow (opens new window), HTML < dialog (opens new window) >

Bacon ipsum dolor amet consectetur short loin ut tri-tip alcatra ground round jowl beef meatloaf in pork. Elit chicken ea spare ribs. Shank andouille ex boudin picanha turkey esse. Do doner fugiat tongue.

Chuck filet mignon flank pork chop mollit enim veniam sed pork loin aliquip sausage prosciutto in deserunt. Nostrud porchetta non nulla sunt. Cupim et velit picanha laborum salami capicola exercitation alcatra sausage cillum shoulder minim esse. Pig boudin aliquip aute, tail ut cow incididunt short loin aliqua.

Doner alcatra pastrami pig, strip steak eu in frankfurter occaecat in filet mignon chuck short loin nulla meatloaf. Adipisicing aliqua kielbasa nulla proident. Ground round meatloaf kevin, shank adipisicing pork frankfurter t-bone spare ribs cupidatat. Sed ham non duis enim, in ipsum fugiat est tongue short ribs ad bresaola prosciutto. Non minim picanha, ad in occaecat fugiat veniam dolor deserunt.

Hi~ I'm a dialog. Click to close.
<style>
  .main-blurry {
    width: 100%;
    user-select: none;
    font: 14px / 1 Helvetica, sans-serif;
    position: relative;
    padding: 30px 50px;
    hyphens: auto;
    text-align: justify;
    transition: .6s filter;
  }
  .article.de-emphasized{
    filter: blur(5px);
  }
  .article .btn{
    padding: 6px 1em;
    border-radius: 3px;
    outline: none;
  }
  .dialog{
    width: 400px; height: 120px;
    text-align: center;
    line-height: 84px;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 .1em .2em rgba(0,0,0,.5), 0 0 0 50vmax rgba(0,0,0,.3);
    z-index: 99;
  }
  .dialog:not([open]){
    display: none;
  }
</style>
<template>
  <div class="main-blurry">
    <article class="article" ref="article">
      <button class="btn" @click="handleBtnClick($event)">Show dialog</button>
      <p>Bacon ipsum dolor amet consectetur short loin ut tri-tip alcatra ground round jowl beef meatloaf in pork. Elit chicken
          ea spare ribs. Shank andouille ex boudin picanha turkey esse. Do doner fugiat tongue.
      </p>
      <p>Chuck filet mignon flank pork chop mollit enim veniam sed pork loin aliquip sausage prosciutto in deserunt. Nostrud
          porchetta non nulla sunt. Cupim et velit picanha laborum salami capicola exercitation alcatra sausage cillum
          shoulder minim esse. Pig boudin aliquip aute, tail ut cow incididunt short loin aliqua.
      </p>
      <p>Doner alcatra pastrami pig, strip steak eu in frankfurter occaecat in filet mignon chuck short loin nulla meatloaf.
          Adipisicing aliqua kielbasa nulla proident. Ground round meatloaf kevin, shank adipisicing pork frankfurter t-bone
          spare ribs cupidatat. Sed ham non duis enim, in ipsum fugiat est tongue short ribs ad bresaola prosciutto. Non
          minim picanha, ad in occaecat fugiat veniam dolor deserunt.
      </p>
    </article>
    <dialog class="dialog" ref="dialog" @click="handleDialogClick($event)">
      Hi~ I'm a dialog. Click to close.
    </dialog>
  </div>
</template>
<script>
export default {
  name: 'cssBlurryWeaken',
  methods: {
    handleBtnClick(e) {
      const { dialog, article } = this.$refs;
      dialog.show();
      article.classList.add('de-emphasized');
    },
    handleDialogClick(e) {
      const { dialog, article } = this.$refs;
      dialog.close && dialog.close();
      article.classList.remove('de-emphasized');
    }
  }
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
显示代码 复制代码
上次更新: 2023-10-28