দেখে মনে হচ্ছে অ্যাপলের ওভারলে কেবল স্বচ্ছতার চেয়ে বেশি নয়। সিএসএস এবং সম্ভবত জেএস দিয়ে এই প্রভাবটি কীভাবে অর্জন করবেন সে সম্পর্কে কোনও ধারণা?
দেখে মনে হচ্ছে অ্যাপলের ওভারলে কেবল স্বচ্ছতার চেয়ে বেশি নয়। সিএসএস এবং সম্ভবত জেএস দিয়ে এই প্রভাবটি কীভাবে অর্জন করবেন সে সম্পর্কে কোনও ধারণা?
উত্তর:
এটি CSS3 এর মাধ্যমে সম্ভব:
#myDiv {
-webkit-filter: blur(20px);
-moz-filter: blur(20px);
-o-filter: blur(20px);
-ms-filter: blur(20px);
filter: blur(20px);
opacity: 0.4;
}
উদাহরণ এখানে => jsfiddle
-moz-filter: blur()
। পরিবর্তে আপনাকে একটি এসভিজি ফিল্টার ব্যবহার করতে হবে, বিশদগুলির জন্য আমার উত্তরটি দেখুন।
http://codepen.io/Edo_B/pen/cLbrt
ব্যবহার:
এটাই.
আমি আরও বিশ্বাস করি যে বর্তমান ডোমটি অনুলিপি করতে এবং এটি ঝাপসা করার জন্য যদি ক্যানভাস ব্যবহার করা হয় তবে কোনও পর্দার জন্য এটি গতিশীলভাবে করা যেতে পারে।
[সম্পাদনা] ভবিষ্যতে (মোবাইল) সাফারি 9 -webkit-backdrop-filter
ঠিক এটির জন্য থাকবে । দেখুন এই কলম আমি এটা শোকেস প্রণীত।
আমি গত 4 সপ্তাহ ধরে এটি সম্পর্কে ভেবেছিলাম এবং এই সমাধানটি নিয়ে এসেছি।
[সম্পাদনা] আমি সিএসএস-ট্রিকস-এ আরও অবাস্তব পোস্ট লিখেছি
এই কৌশলটি সিএসএস অঞ্চলগুলি ব্যবহার করছে তাই ব্রাউজার সমর্থন এই মুহুর্তে সেরা নয়। ( http://caniuse.com/#feat=css-regions )
এই কৌশলটির মূল অংশটি হ'ল CSS অঞ্চল ব্যবহার করে বিন্যাস থেকে সামগ্রী বিভক্ত করা। প্রথমে একটি .content
উপাদান সংজ্ঞায়িত করুন flow-into:content
এবং তারপরে শিরোনামটি ঝাপসা করার জন্য উপযুক্ত কাঠামোটি ব্যবহার করুন।
বিন্যাস কাঠামো:
<div class="phone">
<div class="phone__display">
<div class="header">
<div class="header__text">Header</div>
<div class="header__background"></div>
</div>
<div class="phone__content">
</div>
</div>
</div>
এই লেআউটটি দুটি গুরুত্বপূর্ণ অংশ আছে .header__background
এবং .phone__content
- এই পাত্রে কোন সামগ্রীর যদিও প্রবাহিত করা হয়।
সিএসএস অঞ্চলগুলি ব্যবহার করে এটি সহজ flow-from:content
( .content
নামকরণ অঞ্চলে প্রবাহিত হচ্ছে content
)
এখন চতুর অংশ আসে. আমরা সর্বদা সামগ্রীটি প্রবাহিত করতে চাই .header__background
কারণ এটি সেই অংশ যেখানে সামগ্রীটি ঝাপসা হয়ে যাবে। (ব্যবহার করে webkit-filter:blur(10px);
)
এই দ্বারা সম্পন্ন করা হয় তা নিশ্চিত করার জন্য বিষয়বস্তু সবসময় যদিও প্রবাহিত হবে । এই রূপান্তরটি সর্বদা শিরোনামের নীচে কিছু সামগ্রী লুকিয়ে রাখার সময়। এটি ফিক্সিং সহজতর যোগ করা হয়transfrom:translateY(-$HeightOfTheHeader)
.content
.header__background
.header__background:before{
display:inline-block;
content:'';
height:$HeightOfTheHEader
}
রূপান্তর জন্য স্থান।
এটি বর্তমানে এতে কাজ করছে:
ফায়ারফক্সের মাধ্যমে এটি এখন সম্ভব উপাদান উপাদান শৈলীর গুণাবলীকে ধন্যবাদ ।
এই পরীক্ষামূলক বৈশিষ্ট্যটি আপনাকে কোনও ব্যাকগ্রাউন্ড চিত্র হিসাবে কোনও HTML সামগ্রী ব্যবহার করতে দেয়। সুতরাং, পটভূমি তৈরি করতে আপনার তিনটি ওভারলে দরকার:
-moz-element
সামগ্রীটিকে সেট করে এমন একটি পটভূমির সাথে ওভারলে দিন । নোট করুন যে এফএক্স filter: blur()
বৈশিষ্ট্যটি সমর্থন করে না , সুতরাং আমাদের আমাদের একটি এসভিজি দরকার।সুতরাং, একসাথে রাখুন:
এসভিজি ব্লার ফিল্টার (এফএক্স এ কাজ করে, অন্যান্য ব্রাউজারগুলি ব্যবহার করতে পারে filter:blur()
):
<svg>
<defs>
<filter id="svgBlur">
<feGaussianBlur stdDeviation="10"/>
</filter>
</defs>
</svg>
সিএসএস অস্পষ্ট শৈলী:
.behind-blur
{
filter : url(#svgBlur);
opacity: .4;
background: -moz-element(#content);
background-repeat: no-repeat;
}
শেষ পর্যন্ত 3 স্তর:
<div class="header" style="background-color: #fff"> </div>
<div class="header behind-blur"> </div>
<div class="header">
Header Text, content blurs behind
</div>
তারপরে এটিকে সরানোর জন্য কেবল background-position
(jQuery এর নমুনা সেট করুন তবে আপনি যে কোনও কিছু ব্যবহার করতে পারেন):
$('.behind-blur').css({
'background-position': '-' + left + 'px -' + top + 'px'
});
এই ডেমো পৃষ্ঠাটি দেখুন।
এই ডেমোটি চিত্র হিসাবে নথি রেন্ডার করার জন্য এইচটিএমএল 2 ক্যানভাস ব্যবহার করে।
http://blurpopup.labs.daum.net/
এই কলমটি আমি অন্য দিন পেয়েছি বলে মনে হয়েছিল এটি সুন্দরভাবে করেছে, কেবলমাত্র কিছুটা CSS এবং জাভাস্ক্রিপ্টের 21 লাইন। এটি না পাওয়া পর্যন্ত আমি ক্লোননোড জেএস কমান্ডটি শুনিনি, তবে এটি আমার নিশ্চিতরূপে যা প্রয়োজন তা সম্পূর্ণরূপে কাজ করেছিল।
http://codepen.io/rikschennink/pen/zvcgx
বিশদ: ক। মূলত এটি আপনার সামগ্রী ডিভের দিকে দেখে এবং এটিতে একটি ক্লোননোড আহ্বান করে যাতে এটি একটি সদৃশ তৈরি করে যা এটি ওভারফ্লোতে রেখে দেয়: পৃষ্ঠার উপরে বসে লুকানো শিরোনামের অবজেক্ট। বি। তবে এটি সহজেই স্ক্রোলিংয়ের জন্য শোনায় যাতে উভয় চিত্র মিলছে এবং শিরোনামের ইমেজটি ঝাপসা করে ... বিএএম ঘোষণা করুন। প্রভাব অর্জন।
সিএসএসে সত্যই সম্পূর্ণরূপে সক্ষম নয় যতক্ষণ না তারা ভাষায় লিখিত স্ক্রিপ্টযোগ্যতার লিল বিট পান।
উদাহরণ এখানে:
গতকাল একটি দ্রুত ডেমো তৈরি করেছে যা আপনার কথা বলার মতো করে। http://bit.ly/10clOM9 এই ডেমোটি অ্যাক্সিলোমিটারের উপর ভিত্তি করে প্যারাল্যাক্স করে যাতে এটি আইফোন নিজেই সেরা কাজ করে। আমি মূলত কেবল যে বিষয়বস্তুতে আমরা ওভারলেলি করছি তাতে অনুলিপিযুক্ত স্থিতির উপাদানটিতে অনুলিপি করছি।
দ্রষ্টব্য: প্যানেলটি দেখতে সোয়াইপ করুন।
(আমি ভয়ঙ্কর সিএসডি আইডি ব্যবহার করেছি তবে আপনি ধারণাটি পাবেন)
#frost{
position: fixed;
bottom: 0;
left:0;
width: 100%;
height: 100px;
overflow: hidden;
-webkit-transition: all .5s;
}
#background2{
-webkit-filter: blur(15px) brightness(.2);
}
#content2fixed{
position: fixed;
bottom: 9px;
left: 9px;
-webkit-filter: blur(10px);
}
এ সম্পর্কে খুব নিশ্চিত নই, আমি বিশ্বাস করি যে এই মুহূর্তে সিএসএস এটি করতে সক্ষম নয়
তবে ক্রিস কইয়ার এই জাতীয় প্রভাব অর্জনের জন্য একাধিক চিত্র সহ একটি পুরাতন কৌশল সম্পর্কে ব্লগ করেছেন http: //
এটি দেখুন http://codepen.io/GianlucaGuarini/pen/Hzrhf দেখে মনে হচ্ছে এটি নিজের অধীনে উপাদানটির পটভূমি চিত্রটি সদৃশ ছাড়াই প্রভাব ফেলবে। উদাহরণে পাঠ্যগুলিও ঝাপসা হয়ে যাচ্ছে।
Vague.js
var vague = $blurred.find('iframe').Vague({
intensity:5 //blur intensity
});
vague.blur();
আজকের 11 ই এপ্রিল 2020 , backdrop-filter
সিএসএস সম্পত্তি দিয়ে এটি সহজেই সম্ভব যা এখন ক্রোম, সাফারি এবং এজের স্থিতিশীল বৈশিষ্ট্য।
আমি এটি আমাদের হাইব্রিড মোবাইল অ্যাপ্লিকেশনটিতে চেয়েছিলাম যাতে অ্যান্ড্রয়েড / ক্রোম ওয়েবভিউ এবং সাফারি ওয়েবভিউতেও পাওয়া যায়।
কেবল CSS বৈশিষ্ট্য যুক্ত করুন:
.my-class {
backdrop-filter: blur(30px);
background: transparent; // Make sure there is not backgorund
}
এটি এই কলমে কাজ করে দেখুন বা ডেমো ব্যবহার করে দেখুন:
#main-wrapper {
width: 300px;
height: 300px;
background: url("https://i.picsum.photos/id/1001/500/500.jpg") no-repeat center;
background-size: cover;
position: relative;
overflow: hidden;
}
.my-effect {
position: absolute;
top: 300px;
left: 0;
width: 100%;
height: 100%;
font-size: 22px;
display: flex;
justify-content: center;
align-items: center;
color: black;
-webkit-backdrop-filter: blur(15px);
backdrop-filter: blur(15px);
transition: top 700ms;
}
#main-wrapper:hover .my-effect {
top: 0;
}
<h4>Hover over the image to see the effect</h4>
<div id="main-wrapper">
<div class="my-effect">
Glossy effect worked!
</div>
</div>
ম্যাকডোনাল্ডের অ্যাপটির উদাহরণ নিই কারণ এটি বেশ রঙিন। আমি এর স্ক্রিনশট নিয়েছি এবং body
আমার অ্যাপ্লিকেশনের পটভূমি হিসাবে যুক্ত করেছি।
আমি চকচকে এফেক্ট সহ এটির উপরে একটি পাঠ্য প্রদর্শন করতে চেয়েছিলাম। backdrop-filter: blur(20px);
উপরে ওভারলে ব্যবহার করে, আমি এটি দেখতে সক্ষম হয়েছি: 😍
backdrop-filter
তবুও ফায়ারফক্সে স্বয়ংক্রিয়ভাবে কাজ করে না। আমি সন্দেহ করি যে ব্যবহারকারীরা backdrop-filter
এই প্রভাবটি দেখার জন্য ইচ্ছাকৃতভাবে সক্রিয় করার জন্য বিকল্পগুলি চালু করবেন ।
স্প্রাইটের জন্য একই রকম প্রভাব অর্জন করতে আমি এসজিজি ফিল্টার ব্যবহার করছি
<svg id="gray_calendar" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 48 48 48">
<filter id="greyscale">
<feColorMatrix type="saturate" values="0"/>
</filter>
<image width="48" height="10224" xlink:href="tango48i.png" filter="url(#greyscale)"/>
</svg>
<feGaussianBlur stdDeviation="10"/>
উদাহরণ।<image ...>
এটি কোনও চিত্রের জন্য প্রয়োগ করতে বা একাধিক চিত্র ব্যবহার করতে ট্যাগটি ব্যবহার করুন Useএটি আপনাকে সাহায্য করতে পারে !!
এই ডায়নামিকালি ঠিক আইওএসের পটভূমি পরিবর্তন করে
.myBox {
width: 750px;
height: 500px;
border: rgba(0, 0, 0, 0.5) 1px solid;
background-color: #ffffff;
}
.blurBg {
width: 100%;
height: 100%;
overflow: hidden;
z-index: 0;
}
.blurBg img {
-webkit-filter: blur(50px);
margin-top: -150px;
margin-left: -150px;
width: 150%;
opacity: 0.6;
}
এখানে jQuery সঙ্গে আমার গ্রহণ। সমাধান সর্বজনীন নয়, এর অর্থ আসল নকশার উপর নির্ভর করে কিছু অবস্থান ও স্টাফ মুছে ফেলা উচিত।
মূলত আমি যা করেছি তা হ'ল: ট্রিগার ক্লোন অন করে / পুরো পটভূমিটি (যা ঝাপসা করা উচিত) অপ্রয়োজনীয় সামগ্রীযুক্ত একটি ধারকটিতে (যা বিকল্পভাবে পুরো প্রস্থ না থাকলে ওভারফ্লো লুকিয়ে রেখেছে) এবং সঠিকভাবে এটি অবস্থান করুন। কেভিয়েটটি হ'ল উইন্ডো আকারে অস্পষ্ট ডিভটি অবস্থানের দিক থেকে মূলটি মিলবে না, তবে এটি উইন্ডো পুনরায় আকার ফাংশনটির সাথে কিছুটির সাথে সমাধান করা যেতে পারে (সত্যই আমি এখন এটি নিয়ে বিরক্ত হতে পারি না)।
আমি এই সমাধান সম্পর্কে আপনার মতামত সত্যিই প্রশংসা করব!
ধন্যবাদ
আইডিতে পরীক্ষিত নয় এমন হিটলটি এখানে ।
এইচটিএমএল
<div class="slide-up">
<div class="slide-wrapper">
<div class="slide-background"></div>
<div class="blured"></div>
<div class="slide-content">
<h2>Pop up title</h2>
<p>Pretty neat!</p>
</div>
</div>
</div>
<div class="wrapper">
<div class="content">
<h1>Some title</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque molestie magna elit, quis pulvinar lectus gravida sit amet. Phasellus lacinia massa et metus blandit fermentum. Cras euismod gravida scelerisque. Fusce molestie ligula diam, non porta ipsum faucibus sed. Nam interdum dui at fringilla laoreet. Donec sit amet est eu eros suscipit commodo eget vitae velit.</p>
</div> <a class="trigger" href="#">trigger slide</a>
</div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<filter id="blur">
<feGaussianBlur stdDeviation="3" />
</filter>
</svg>
সিএসএস
body {
margin: 0;
padding: 0;
font-family:'Verdana', sans-serif;
color: #fff;
}
.wrapper {
position: relative;
height: 100%;
overflow: hidden;
z-index: 100;
background: #CD535B;
}
img {
width: 100%;
height: auto;
}
.blured {
top: 0;
height: 0;
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-ms-filter: blur(3px);
filter: blur(3px);
filter: url(#blur);
filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='3');
position: absolute;
z-index: 1000;
}
.blured .wrapper {
position: absolute;
width: inherit;
}
.content {
width: 300px;
margin: 0 auto;
}
.slide-up {
top:10px;
position: absolute;
width: 100%;
z-index: 2000;
display: none;
height: auto;
overflow: hidden;
}
.slide-wrapper {
width: 200px;
margin: 0 auto;
position: relative;
border: 1px solid #fff;
overflow: hidden;
}
.slide-content {
z-index: 2222;
position: relative;
text-align: center;
color: #333333;
}
.slide-background {
position: absolute;
top: 0;
width: 100%;
height: 100%;
background-color: #fff;
z-index: 1500;
opacity: 0.5;
}
jQuery এর
// first just grab some pixels we will use to correctly position the blured element
var height = $('.slide-up').outerHeight();
var slide_top = parseInt($('.slide-up').css('top'), 10);
$wrapper_width = $('body > .wrapper').css("width");
$('.blured').css("width", $wrapper_width);
$('.trigger').click(function () {
if ($(this).hasClass('triggered')) { // sliding up
$('.blured').animate({
height: '0px',
background: background
}, 1000, function () {
$('.blured .wrapper').remove();
});
$('.slide-up').slideUp(700);
$(this).removeClass('triggered');
} else { // sliding down
$('.wrapper').clone().appendTo('.blured');
$('.slide-up').slideDown(1000);
$offset = $('.slide-wrapper').offset();
$('.blured').animate({
height: $offset.top + height + slide_top + 'px'
}, 700);
$('.blured .wrapper').animate({
left: -$offset.left,
top: -$offset.top
}, 100);
$(this).addClass('triggered');
}
});