Zamanında şöyle birşey yapmıştım butona tıklanınca login, register açılıyor açılan bölge dışına tıklayınca veya butona tekrar tıklayınca
div kapanıyor. Bunu target
metoduyla yaptım yani tıkladığın yerdeki hedef is()
'in içindeki şeyle eşleşmiyorsa false veriyor ve kapatıyor şimdi senin kodunda ise accordion classları ortak bu sebeple tam emin olmamakla beraber;
var accordion = $('button').parent('section').children();
$(document).on("click", function(e) {
if ($(e.target).is(accordion) === false) {
$('.accordion .content').slideUp();
//ya da
$('.accordion .content').removeClass('show');
}
}
Bu benim kendi projemde kullandığım kodlar
.openProfile {
display: none;
}
.openProfile.wide {
display: block !important;
}
<button class="showProfile"></button>
<div class="openProfile">
<div>Login</div>
<div>Register</div>
</div>
$(function() {
$(".showProfile").on("click", function(e) {
if ($(".openProfile").hasClass("wide")) {
$(".openProfile").hide();
} else {
$(".openProfile").addClass("wide");
e.stopPropagation()
}
});
$(document).on("click", function(e) {
if ($(e.target).is(".openProfile") === false) {
$(".openProfile").removeClass("wide");
}
});
});
(Amacım yönlendirmek değil zamanında bu yollardan geçmiş biri olarak tavsiye niteliğinde yazıyorum)
html css derslerini bitirdiysen şu an kendin bir proje yapmandansa Youtube'da Arin Yazılım kanalındaki Bu video listesi
ile başla hatta o kanalda 2-3 ay geçir bootstrap projesi de var onları bitirdikten sonra kendi kendine tek sayfalık bir website projesi yap
ondan sonra yine sana bağlı fakat bence php yi öğrenmeye çalış ve bu aşamada çok dikkatli ol güncel ve bitmiş kurslara bak yoksa
yazılımdan soğuyabilirsin güncel olmasına dikkat et! Html, Css ve bootstrapla 3-4 ay geçirmeden php ye geçmeni tavsiye etmiyorum.Kolay gelsin.
Adamın yaptığı sliderdaki js kodları neden öyle karışık anlayamadım çünkü swipperjs kullanımış neyse bence swipper demolarından birini
kendin ayarlayıp kullanabilirsin swipper demoları
Ben buna benzer bir olay yaşamıştım eğer düşündüğüm gibiyse şimdi sen new FormData() dediğin için form'u serialize şeklinde gönderiyorsun
dışardan ek bir data ekleyince hata veriyor mesela sen bunun yerine;
var form_data = new FormData();
form_data.append('file', file_data);
form_data.append('top2', file_nana);
data: form_data,
bu tarz kullansan sorun çıkmaz diye düşünüyorum tabi new FormData()'yı sileceksin
var file_nana = $("#imageid").val();
var file_data = $('#inputfile').prop('files')[0];
data: {file_nana:file_nana,file_data:file_data},
bi dene istersen.
codepen'de Wave kelimesiyle aratırsan bulabilirsin örnek olarak Buna tıkla
Bu sana belki yardımcı olablir bu linke tıkla
Sonunda yaptım :) mesele reCaptcha fonksiyonunu çalıştırırken sadece $response değerini yazmamdan kaynaklıymış
function reCaptcha($response, $secretRec) {
$fields = [
'secret' => $secretRec,
'response' => $response
];
$ch = curl_init('https://www.google.com/recaptcha/api/siteverify');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($fields),
CURLOPT_RETURNTRANSFER => true
]);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
$error = "Güvenlik adımını doğrulayın";
} else {
// select() fonksiyonu OOP ile yazıldığı için fonksiyonlardan geliyor normalde mysli deki query() olarak yazılırdı..
$queryRecaptcha = "SELECT * FROM webset";
$postRecaptcha = $db->select($queryRecaptcha);
$report = "";
if ($postRecaptcha) {
$resultRecaptcha = $postRecaptcha->fetch_assoc();
$qRecaptcha .= $resultRecaptcha['recaptcha2'];
}
$myRecaptcha = $report;
//mesele buradaki reCaptcha() içine 2 parametre girmediğimden kaynaklıymış o yüzden hata veriyormuş $myRecaptcha'yı ekleyince oldu.
$result = reCaptcha($_POST['g-recaptcha-response'], $myRecaptcha);
if ($result['success'] == 1) {
$query = "INSERT INTO contact(username, email, body) VALUES ('$username', '$email', '$body')";
$inserted_rows = $db->insert($query);
if ($inserted_rows) {
$msg = "Mesaj başarıyla gönderildi.";
} else {
$error = "Mesaj gönderilemedi";
}
} else {
$error = "Recaptcha sıkıntılı!";
}
}
tamam bunuda denedim hata verdi bana tam olarak mysqli ile birlikte bi sorgu yazabilirmisin ? tablo adı webset çekeceğim kısım recaptcha olsun nereye yazcam bu sqli
function reCaptcha nın içinemi dışınamı her ikisinide yaptım ama hata verdi.
Anladığım kadarıyla açılır kapanır nav yapmak istiyorsun sana 2 farlı nav yaptım. İlki en basit yol active clası belirleyip onu atıyorsun. 2.si ise display none vererek oluyor.
Eğer ben herşey sabit dursun soldan sağa 300 width açılsın dersen onuda jqueryle slideToggle() fonksiyonu var basitçe yapabilirsin. slideToggle(fast) dersen hızlı slideToggle(slow) dersen
de yavaş açılır
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div, button {
font-family: roboto;
}
/* myDivLeft*/
#navIdLeft {
background-color:#ee6f57;
padding:10px;
margin-top: 10px;
width: 300px;
position: absolute;
left: -320px;
border-radius: .25rem;
transition: all .5s;
}
#navIdLeft.active {
left: 10px;
transition: all .5s;
}
.myDivLeft ul li {
list-style: none;
padding-bottom: 5px;
margin-bottom: 10px;
}
.myDivLeft li a {
text-decoration: none;
color: #222;
border-radius: .25rem;
}
.buttonLeft {
background-color: #ee6f57;
padding: 10px 15px;
border-radius: .25rem;
border: 1px solid #ee6f57;
color: #fff;
cursor: pointer;
}
/* myDiv*/
.myDiv ul li {
list-style: none;
padding-bottom: 5px;
background-color: #eeed;
margin-bottom: 10px;
}
.myDiv li a {
text-decoration: none;
color: #222;
padding: 5px;
border-radius: .25rem;
}
.button {
background-color: #ee6f57;
padding: 10px 15px;
border-radius: .25rem;
border: 1px solid #ee6f57;
color: #fff;
cursor: pointer;
}
.myDiv {
width: 300px;
margin: 0 auto;
margin-top: 10%;
}
.myDiv .button{
text-align: center;
}
#navId {
background-color: #eee;
color:#222;
width: 300px;
padding: 10px;
margin-top: 20px;
border-radius: .25rem;
}
</style>
<script type="text/javascript">
function openNavLeft() {
document.getElementById("navIdLeft").classList.toggle("active");
}
function openNav() {
var x = document.getElementById("navId");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
<title>Açılır Nav</title>
</head>
<body>
<div class="myDivLeft">
<button class="buttonLeft" onclick="openNavLeft();">Tıkla</button>
<div id="navIdLeft">
<ul>
<li><a href="#">Anasayfa</a></li>
<li><a href="#">Hakkımızda</a></li>
<li><a href="#">İletişim</a></li>
<li><a href="#">SSS</a></li>
</ul>
</div>
</div>
<div class="myDiv">
<button class="button" onclick="openNav();">Tıkla</button>
<div id="navId">
<ul>
<li><a href="#">Anasayfa</a></li>
<li><a href="#">Hakkımızda</a></li>
<li><a href="#">İletişim</a></li>
<li><a href="#">SSS</a></li>
</ul>
</div>
</div>
</body>
</html>
<img src="https://i.resimyukle.xyz/JQba71.png">