AkankshaAI / AkankshaAI/Hacktoberfest2023-Beginners-New
Özür.html
- Vorherrschende Sprache
- JavaScript
- Sterne
- 61
- Forks
- 641
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Senden Özür Diliyorum ❤️
/* Ana gövde stil ayarları */
body {
font-family: 'Inter', sans-serif; /* Yazı tipini ayarla */
background-color: #ffe4e1; /* Çok açık pembe arka plan rengi */
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh; /* Minimum ekran yüksekliği */
margin: 0;
overflow: hidden; /* Kaydırma çubuklarını gizle (tuş hareketleri için) */
position: relative; /* Mutlak konumlandırma için bağlam */
}
/* Ana içerik kapsayıcısı */
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 20px;
max-width: 90%; /* Maksimum genişlik */
position: relative; /* İçindeki mutlak konumlandırılmış öğeler için bağlam */
z-index: 1; /* Tam ekran tuşunun altında kalmasını sağla */
}
/* Tuşlar için kapsayıcı */
.button-container {
display: flex;
gap: 20px; /* Tuşlar arasında boşluk */
margin-top: 40px; /* Kediden sonra boşluk */
position: relative; /* "Hayır" tuşunun mutlak konumlandırması için bağlam */
z-index: 2;
}
/* "Hayır" tuşu stili */
.no-button {
transition: all 0.1s ease-out; /* Yumuşak hareket için geçiş efekti */
white-space: nowrap; /* Metnin tek satırda kalmasını sağla */
}
/* "Evet" tuşu stili */
.yes-button {
transition: all 0.3s ease-in-out; /* Yumuşak büyüme için geçiş efekti */
white-space: nowrap; /* Metnin tek satırda kalmasını sağla */
transform-origin: center center; /* Büyümenin kendi merkezinden olmasını sağla */
}
/* Tam ekran "Evet" tuşu stili */
.full-screen-yes {
position: fixed; /* Ekranı tamamen kaplaması için sabit konumlandırma */
top: 0;
left: 0;
width: 100vw; /* Görünüm alanı genişliğinin %100'ü */
height: 100vh; /* Görünüm alanı yüksekliğinin %100'ü */
background-color: #4CAF50; /* Yeşil arka plan rengi */
color: white; /* Beyaz metin rengi */
display: flex;
justify-content: center;
align-items: center;
font-size: 3rem; /* Büyük yazı tipi boyutu */
z-index: 1000; /* En öne getir */
cursor: pointer; /* Fare imlecini işaretçi yap */
border-radius: 0; /* Tam ekran olduğunda köşeleri yuvarlama */
text-shadow: 2px 2px 4px rgba(0,0,0,0.3); /* Metne hafif gölge ekle */
transition: none; /* Tam ekran olduğunda geçişi kapat */
}
/* Gizli öğeler için stil */
.hidden {
display: none !important;
}
Lütfen beni affet
😿
Beni affettiğin için tenkyu seni çokçok seviyorum ❤️
// HTML öğelerine referansları al
const apologyText = document.getElementById('apology-text');
const sadCat = document.getElementById('sad-cat');
const noButton = document.getElementById('no-button');
const yesButton = document.getElementById('yes-button');
const mainContainer = document.getElementById('main-container');
const thankYouMessage = document.getElementById('thank-you-message');
const buttonWrapper = document.getElementById('button-wrapper'); // Yeni tuş kapsayıcısı
let noClickCount = 0; // "Hayır" tuşu tıklama sayacı
// "Evet" tuşu için değişecek metinler dizisi
const yesButtonTexts = [
"Emin misin?",
"Cidden affetmeyecek misin?",
"Lütfen düşün...",
"Son bir şans?",
"Kalbim kırıldı...",
"Gerçekten mi?",
"Affetmek güzeldir.",
"Beni seviyorsun, değil mi?",
"Hadi ama...",
"Son karar?"
];
// "Evet" tuşuna tıklandığında çalışacak fonksiyon
const handleYesClick = () => {
// Özür metnini, kediyi ve tuşları gizle
apologyText.classList.add('hidden');
sadCat.classList.add('hidden');
buttonWrapper.classList.add('hidden'); // Tuş kapsayıcısını gizle
// Teşekkür mesajını göster
thankYouMessage.classList.remove('hidden');
// Teşekkür mesajını ortalamak için ana kapsayıcının stilini ayarla
mainContainer.style.display = 'flex';
mainContainer.style.flexDirection = 'column';
mainContainer.style.justifyContent = 'center';
mainContainer.style.alignItems = 'center';
mainContainer.style.width = '100vw';
mainContainer.style.height = '100vh';
mainContainer.style.position = 'fixed';
mainContainer.style.top = '0';
mainContainer.style.left = '0';
mainContainer.style.backgroundColor = '#ffe4e1'; /* Arka plan rengini koru */
mainContainer.style.zIndex = '1001'; /* En üstte olmasını sağla */
};
// "Evet" tuşuna tıklama olay dinleyicisini ekle
yesButton.addEventListener('click', handleYesClick);
// "Hayır" tuşuna tıklandığında çalışacak fonksiyon
noButton.addEventListener('click', () => {
noClickCount++; // Tıklama sayacını artır
if (noClickCount <= 10) {
// İlk tıklamada "Hayır" tuşunu mutlak konumlandır
if (noClickCount === 1) {
// Tuşun mevcut konumunu al ve mutlak yap
const rect = noButton.getBoundingClientRect();
noButton.style.position = 'absolute';
noButton.style.left = `${rect.left}px`;
noButton.style.top = `${rect.top}px`;
}
// "Hayır" tuşunu rastgele hareket ettir
const viewportWidth = window.innerWidth; // Görünüm alanı genişliği
const viewportHeight = window.innerHeight; // Görünüm alanı yüksekliği
const noButtonWidth = noButton.offsetWidth; // "Hayır" tuşunun genişliği
const noButtonHeight = noButton.offsetHeight; // "Hayır" tuşunun yüksekliği
// Tuşun görünüm alanı içinde kalması için maksimum X ve Y koordinatlarını hesapla
const maxX = viewportWidth - noButtonWidth;
const maxY = viewportHeight - noButtonHeight;
let newX, newY;
let attempts = 0;
const minDistance = 150; // Görünüm alanının merkezinden minimum uzaklık
// Tuşun merkezi bölgeden uzak durmasını sağlayacak bir konum bulana kadar döngü
do {
newX = Math.random() * maxX;
newY = Math.random() * maxY;
attempts++;
// Çok küçük ekranlarda sonsuz döngüyü önlemek için deneme sayısını sınırla
if (attempts > 100) break;
} while (
// Yeni konumun "yasaklı" merkezi bölge içinde olup olmadığını kontrol et
(newX > (viewportWidth / 2) - minDistance && newX < (viewportWidth / 2) + minDistance) &&
(newY > (viewportHeight / 2) - minDistance && newY < (viewportHeight / 2) + minDistance)
);
noButton.style.left = `${newX}px`;
noButton.style.top = `${newY}px`;
// "Evet" tuşunun boyutunu artır ve metnini değiştir (10. tıklama hariç)
if (noClickCount < 10) {
const currentScale = 1 + (noClickCount * 0.1); // Her tıklamada %10 büyüt
yesButton.style.transform = `scale(${currentScale})`;
// yesButtonTexts dizisinin sınırları dışına çıkmadığımızdan emin ol
if (noClickCount - 1 < yesButtonTexts.length) {
yesButton.textContent = yesButtonTexts[noClickCount - 1]; // Metni güncelle
}
} else if (noClickCount === 10) {
// 10. tıklamada, "Hayır" tuşu kaybolur, "Evet" tuşu tam ekran olur
noButton.classList.add('hidden');
apologyText.classList.add('hidden');
sadCat.classList.add('hidden');
buttonWrapper.classList.add('hidden'); // Tuş kapsayıcısını gizle
// Mevcut yesButton'ı tam ekran yap
yesButton.classList.remove('yes-button'); // Orijinal stilini kaldır
yesButton.classList.add('full-screen-yes'); // Tam ekran stilini ekle
yesButton.style.transform = 'none'; // Ölçeklendirme dönüşümünü kaldır
yesButton.textContent = "Affediyorum"; // Metni "Affediyorum" olarak sıfırla
yesButton.classList.remove('hidden'); // Tam ekran olarak görünür yap
// Önceki "Evet" tuşu olay dinleyicisini kaldır ve tam ekran davranışı için yenisini ekle
yesButton.removeEventListener('click', handleYesClick);
yesButton.addEventListener('click', () => {
yesButton.classList.add('hidden'); // Tam ekran tuşunu gizle
thankYouMessage.classList.remove('hidden'); // Teşekkür mesajını göster
// Teşekkür mesajını ana kapsayıcı içinde ortala
mainContainer.style.display = 'flex';
mainContainer.style.flexDirection = 'column';
mainContainer.style.justifyContent = 'center';
mainContainer.style.alignItems = 'center';
mainContainer.style.width = '100vw';
mainContainer.style.height = '100vh';
mainContainer.style.position = 'fixed';
mainContainer.style.top = '0';
mainContainer.style.left = '0';
mainContainer.style.backgroundColor = '#ffe4e1';
mainContainer.style.zIndex = '1001';
});
}
}
});
// Ekran yeniden boyutlandırıldığında "Hayır" tuşunun sınırlar içinde kalmasını sağla
window.addEventListener('resize', () => {
// Eğer "Hayır" tuşu hareket etmeye başlamışsa (mutlak konumdaysa)
if (noClickCount > 0 && noClickCount < 10 && noButton.style.position === 'absolute') {
const maxX = window.innerWidth - noButton.offsetWidth;
const maxY = window.innerHeight - noButton.offsetHeight;
let currentX = parseFloat(noButton.style.left);
let currentY = parseFloat(noButton.style.top);
if (currentX > maxX) noButton.style.left = `${maxX}px`;
if (currentY > maxY) noButton.style.top = `${maxY}px`;
}
// Ana kapsayıcıyı yeniden boyutlandırmada ortala (tam ekran değilse)
if (thankYouMessage.classList.contains('hidden') && !yesButton.classList.contains('full-screen-yes')) {
mainContainer.style.left = '50%';
mainContainer.style.top = '50%';
mainContainer.style.transform = 'translate(-50%, -50%)';
}
});
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.