AkankshaAI / AkankshaAI/Hacktoberfest2023-Beginners-New

Özür.html

Đang mở
#390 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
JavaScript
Star
61
Fork
640
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả



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



😿




Affetmicem


Affediyorum




// 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%)';
}
});

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.