2014-03-13 9 views
32

Ich erstelle gerade ein neues Webdesign in Photoshop, aber ich würde gerne wissen, ob es möglich ist, den Inhalt unter einem Div zu verwischen?Kannst du den Inhalt unter/hinter einem Div unscharf machen?

Ich möchte eine halbtransparente nav Leiste auf meiner Seite erstellen, die oben auf dem Bildschirm festgelegt ist. Alles was unter/hinter fließt, möchte ich verschwommen haben. Für diejenigen von euch, die ein iOS-Gerät mit iOS 7 haben, schaut euch den Header von Safari an; wo die Seite unter der Kopfzeile unscharf ist. Das ist der Effekt, nach dem ich suche.

Ich hätte nichts dagegen, dass der Effekt nicht auf älteren Browsern (IE8 usw.) funktioniert, die in diesem Fall einen Hintergrund mit 0,5 Deckkraft als Fallback haben.

Wenn das möglich ist, bin ich wirklich auf der Suche nach dem notwendigen Code!

+1

Schatten verwenden DOM die Vererbung in CSS umgehen http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/ –

Antwort

18

Möglicherweise ein Duplikat this question, wobei in diesem Fall: Sie können dies mit Leinwand abziehen und die StackBlurforCanvas Bibliothek. Siehe this

UPDATE: Es sieht so aus, als ob diese Funktion landed in the Webkit nightly build, hat, so dass Sie eventuell nur mit CSS arbeiten können.

+0

Endergebnis deiner Ressourcen sind unterschiedlich, aber erstell was ich mir wünsche, soweit ich das sehe. Super, danke! –

0

Ich habe dieses jQuery-Plugin in der Vergangenheit verwendet und es hat ganz gut funktioniert: http://blurjs.com/ Es klingt wie es genau das ist, was Sie suchen.

+1

Das scheint meinen Bedürfnissen zu entsprechen. Ich bin jedoch bereit, auf eine einzige CSS3-Lösung zu warten, soweit diese existiert. In der Zwischenzeit, Danke Kumpel! –

+0

@SanderSchaeffer Vertrauen Sie mir, ich habe buchstäblich tagelang gesucht und es gibt absolut keine reine CSS-Lösung, besonders keine, die in vielen Browsern unterstützt wird. Dies ist das einzige, was ich vor zwei Monaten bei meiner Suche finden konnte. Wenn nicht etwas Neues herausgekommen ist, ist dies die beste Wahl. :) –

+1

Nun, wenn Sie auf einfache Logik gehen. CSS basiert auf dem Item-spezifischen Styling, während Javascript flexibler und dynamischer ist. Auf dieser Grundlage würde ich denken, dass CSS nie den Trick machen wird, bis mindestens CSS4; obwohl das zu kleingeistig sein könnte. Vielen Dank! =) –

-3

Sie dies mit css3 tun können, verwischt diese das gesamte Element

div (or whatever element) { 
    -webkit-filter: blur(5px); 
    -moz-filter: blur(5px); 
    -o-filter: blur(5px); 
    -ms-filter: blur(5px); 
    filter: blur(5px); 
} 

Fiddle: http://jsfiddle.net/H4DU4/

+4

Das Plakat will das Element nicht verschwimmen, sie wollen den Hintergrund hinter dem Element verschwommen. –

+0

Aber das verwischt das Element selbst. Ich möchte den Inhalt unter/hinter einem div unscharf machen. d.h. jene Elemente, die vor/hinter/unter einem festen Element abrollen. Oder liege ich falsch? –

+0

dann können sie einfach ein anderes Element hinter sich lassen und es verwischen, der Zweck meiner Antwort war ihnen zu sagen, wie man einen css blur benutzt sie posteten keinen Code, ich werde nicht die Arbeit für sie tun – user934902

4

Wenn Sie unblur aktivieren möchten, können Sie nicht einfach die Unschärfe CSS zum Körper hinzufügen, Sie müssen jedes sichtbare Kind eine Ebene direkt unter dem Körper verwischen und dann das CSS entfernen, um zu blenden. Der Grund ist wegen der "Cascade" in CSS, Sie können die Kaskadierung des CSS-Unschärfe-Effekts für ein Kind des Körpers nicht rückgängig machen. , Auch den Körper des Hintergrundbild verwischen müssen Sie das Pseudoelement verwenden: vor

//HTML 

<div id="fullscreen-popup" style="position:absolute;top:50%;left:50%;"> 
    <div class="morph-button morph-button-overlay morph-button-fixed"> 
     <button id="user-interface" type="button">MORE INFO</button> 
     <!--a id="user-interface" href="javascript:void(0)">popup</a--> 
     <div class="morph-content"> 
      <div> 
       <div class="content-style-overlay"> 
        <span class="icon icon-close">Close the overlay</span> 
        <h2>About Parsley</h2> 
        <p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p> 
        <p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p> 
        <p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p> 
        <p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p> 
        <p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p> 
        <p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

//CSS 

/* Blur - doesn't work on IE */ 

.blur-on, .blur-element { 
    -webkit-filter: blur(10px); 
    -moz-filter: blur(10px); 
    -o-filter: blur(10px); 
    -ms-filter: blur(10px); 
    filter: blur(10px); 

    -webkit-transition: all 5s linear; 
    transition  : all 5s linear; 
    -moz-transition : all 5s linear; 
    -webkit-transition: all 5s linear; 
    -o-transition  : all 5s linear; 
} 
.blur-off { 
    -webkit-filter: blur(0px) !important; 
    -moz-filter : blur(0px) !important; 
    -o-filter  : blur(0px) !important; 
    -ms-filter : blur(0px) !important; 
    filter  : blur(0px) !important; 
} 
.blur-bgimage:before { 
    content: ""; 
    position: absolute; 
    height: 20%; width: 20%; 
    background-size: cover; 
    background: inherit; 
    z-index: -1; 

    transform: scale(5); 
    transform-origin: top left; 
    filter: blur(2px);  
    -moz-transform: scale(5); 
    -moz-transform-origin: top left; 
    -moz-filter: blur(2px);  
    -webkit-transform: scale(5); 
    -webkit-transform-origin: top left; 
    -webkit-filter: blur(2px); 
    -o-transform: scale(5); 
    -o-transform-origin: top left; 
    -o-filter: blur(2px);  

    transition  : all 5s linear; 
    -moz-transition : all 5s linear; 
    -webkit-transition: all 5s linear; 
    -o-transition  : all 5s linear; 
} 


//Javascript 

function blurBehindPopup() { 
    if(blurredElements.length == 0) { 
     for(var i=0; i < document.body.children.length; i++) { 
      var element = document.body.children[i]; 
      if(element.id && element.id != 'fullscreen-popup' && element.isVisible == true) { 
       classie.addClass(element, 'blur-element'); 
       blurredElements.push(element); 
      } 
     } 
    } else { 
     for(var i=0; i < blurredElements.length; i++) { 
      classie.addClass(blurredElements[i], 'blur-element'); 
     } 
    } 
} 
function unblurBehindPopup() { 
    for(var i=0; i < blurredElements.length; i++) { 
     classie.removeClass(blurredElements[i], 'blur-element'); 
    } 
} 

Full Working Example Link

+0

Ihr Link funktioniert nicht ... – Hexodus

+0

Ich habe es aktualisiert, danke für den Kopf. –