Tajuk: Mencapai keterlihatan teks putih pada mana-mana latar belakang warna kecuali putih
P粉744691205
P粉744691205 2023-11-10 16:59:01
0
1
757

Menggunakan mix-blend-mode: Difference untuk menukar warna teks kepada putih berfungsi dengan baik apabila warna latar belakang hitam. Gerakkan tetikus ke atas teks untuk melihat kesan:


const blackBox = document.querySelector(".black-box");
window.addEventLis tener('mousemove', function(event) {
  blackBox.style.left = `${event.pageX - 50}px`;
  blackBox.style.top = `${event.pageY - 50}px`;
});
.wrapper {
  background-color: white;
}
h1 {
  position: relative;
  z-index: 2;
  color: white;
  mix-blend-mode: difference;
}

.black-box {
  width: 100px;
  height: 100px;
  position: absolute;
  z-index: 1;
  background-color: black;
}
<div class="wrapper">
  <h1>Lorem Ipsum</h1>
</div>
<div class="black-box"></div>


Ini tidak akan menghasilkan teks putih jika latar belakangnya bukan hitam, yang boleh difahami:


const box = document.querySelector(".box");
window.addEventList ener('mousemove', function(event) {
  box.style.left = `${event.pageX - 50}px`;
  box.style.top = `${event.pageY - 50}px`;
});
.wrapper {
  background-color: white;
}
h1 {
  position: relative;
  z-index: 2;
  color: white;
  mix-blend-mode: difference;
}

.box {
  width: 100px;
  height: 100px;
  position: absolute;
  z-index: 1;
  background-image: url("https://placekitten.com/100/100")
}
<div class="wrapper">
  <h1>Lorem Ipsum</h1>
</div>
<div class="box"></div>


Adakah terdapat sebarang cara untuk membuat warna teks bertukar daripada hitam kepada putih apabila latar belakang berbeza daripada putih?

P粉744691205
P粉744691205

membalas semua(1)
P粉445714413

Ini ialah idea yang bergantung pada warna latar belakang 混合混合模式. Caranya ialah dengan menggunakan kecerunan saiz yang sama seperti imej, digerakkan dengan cara yang sama untuk mensimulasikan mod campuran:

const box = document.querySelector(".box");
const h1 = document.querySelector("h1");
window.addEventListener('mousemove', function(event) {
  box.style.left = `${event.pageX - 50}px`;
  box.style.top = `${event.pageY - 50}px`;
  
  h1.style.backgroundPosition = `${event.pageX - 50}px ${event.pageY - 50}px`;
});
.wrapper {
  background-color: white;
}
h1 {
  position: relative;
  z-index: 2;
  color: white;
  background: 
    /*gradient                   position   /    size  */
    linear-gradient(#fff,#fff) -100px -100px/100px 100px fixed no-repeat,
    #000;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.box {
  width: 100px;
  height: 100px;
  position: absolute;
  z-index: 1;
  background-image: url("https://placekitten.com/100/100")
}

Lorem Ipsum

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan