Devamını Göster - Devamını Gizle Kodu
-
Merhaba, hepsiburada.com'da footerın üstündeki gibi devamını gizlenmiş bir metin yayınlamam gerekiyor. Devamını göster ibaresi ile gerisi kullanıcıdan gizlenecek, sonra tekrar devamını gizle ile yazı küçülecek. Kendimce bir şeyler yaptım da pek olmadı.
yazıyı display: none; ile gizledim. sonra gizli metni div içine alıp aşağıdaki kodu kullandım.
<span onclick="gizleGoster('icerik');"><strong>Devamını Göster, Gizle ...</strong></span> <script>function gizleGoster(ID) { var secilenID = document.getElementById(ID); if (secilenID.style.display == "none") { secilenID.style.display = ""; } else { secilenID.style.display = "none"; } }</script>
mantık olarak çalışıyor, basınca yazı açılıyor, tekrar basınca da kapanıyor. ama display: none; kullanmak pek içime sinmedi. daha düzgün bir şekilde yardımcı olabilir misiniz? Yazılımcı olmadığımdan çıkamadım işin içinden. -
jargonphp bunu yazdı
Merhaba, hepsiburada.com'da footerın üstündeki gibi devamını gizlenmiş bir metin yayınlamam gerekiyor. Devamını göster ibaresi ile gerisi kullanıcıdan gizlenecek, sonra tekrar devamını gizle ile yazı küçülecek. Kendimce bir şeyler yaptım da pek olmadı.
yazıyı display: none; ile gizledim. sonra gizli metni div içine alıp aşağıdaki kodu kullandım.
Devamını Göster, Gizle ...
mantık olarak çalışıyor, basınca yazı açılıyor, tekrar basınca da kapanıyor. ama display: none; kullanmak pek içime sinmedi. daha düzgün bir şekilde yardımcı olabilir misiniz? Yazılımcı olmadığımdan çıkamadım işin içinden.$(secilenid).hide(500). ---- $(secilenid).show(500)
-
MhmdAlmz bunu yazdıjargonphp bunu yazdı
$(secilenid).hide(500). ---- $(secilenid).show(500)
aynı kakanın jqueryili laciverti
-
neverland bunu yazdıMhmdAlmz bunu yazdıjargonphp bunu yazdı
$(secilenid).hide(500). ---- $(secilenid).show(500)
aynı kakanın jqueryili laciverti
peki senin istediğin ne ? html'de ki boku göster mek mi ? yoksa devamina tikladiğinda ajax ile vs o anda sıçtırmak mı ? :)
edit : hitabet'imin gereksiz yanlış oldugunu fark edip editledim.
rakkoc tarafından 02/Eyl/20 11:39 tarihinde düzenlenmiştir -
rakkoc bunu yazdıneverland bunu yazdıMhmdAlmz bunu yazdıjargonphp bunu yazdı
$(secilenid).hide(500). ---- $(secilenid).show(500)
aynı kakanın jqueryili laciverti
peki senin istediğin ne ? html'de ki boku göster mek mi ? yoksa devamina tikladiğinda ajax ile vs o anda sıçtırmak mı ? :)
edit : hitabet'imin gereksiz yanlış oldugunu fark edip editledim.
yazdığım içeriğin "Devamını göster" deyince açılmasını istiyorum. Normalde kullanıcı içeriği görmesin,
hepsiburada.com'daki gibi. devamını göster diyorsun yazı açılıyor, sonra devamını gizle diyorsun kapanıyor. Yazılım kıtlığım olduğundan yapamıyorum. Sayfaya uzunca içerik gireceğim. Eticaret sitesinde o kadar uzun yazıyı gizlemekten başka seçenek yok. İlk mesajda yazdığım kodla yaptım da display none kullandım yazıyı gizlemiş oluyorum google amca istemiyor. İşi bilenlere sorayım dedim
-
rakkoc bunu yazdıneverland bunu yazdıMhmdAlmz bunu yazdıjargonphp bunu yazdı
$(secilenid).hide(500). ---- $(secilenid).show(500)
aynı kakanın jqueryili laciverti
peki senin istediğin ne ? html'de ki boku göster mek mi ? yoksa devamina tikladiğinda ajax ile vs o anda sıçtırmak mı ? :)
edit : hitabet'imin gereksiz yanlış oldugunu fark edip editledim.
Bak bir şey yazıyorum her seferinde kızıyorsunuz. Benim açıklamalarım yeterli gelmiyor demekki bari kaynak vereyim:
https://stackoverflow.com/questions/4396983/difference-between-jquery-s-hide-and-setting-css-to-display-none
"So if it's important that you're able to revert to the previous value of
display
, you'd better usehide()
because that way the previous state is remembered. Apart from that there's no difference."Şimdi adam zaten gizleGoster diye bir metot yapmış. @MhmdAlmz arkadaşın verdiği çözümün tek farkı; metodun adının gizleGoster yerine show/hide diye 2 metottan oluşması ve üstüne javascript yerine jQuery olması.
Soruyu soran adama diyorsunki; metodunun adı gizleGoster sen onu hide/show diye 2 metot olarak yaz, al sana çözüm. Bu çözüm mü oluyor şimdi?
Yanlış mıyım yani? Anlatamıyor muyum?
Niye bu kadar terstten anlıyorsunuz her yazdığımı bilmiyorum.
Buyur jQuery hide-show metodunun içi; burayı okuyup arkadaşın yazdığı kodla aynı olduğunu görebilirsin. (Daha gelişmişi tabiki)
Umarım neden laciverti olduğunu şimdi anlatabilmişimdir.
https://github.com/jquery/jquery/blob/master/src/css/showHide.js
if ( show ) { // Since we force visibility upon cascade-hidden elements, an immediate (and slow) // check is required in this first loop unless we have a nonempty display value (either // inline or about-to-be-restored) if ( display === "none" ) { values[ index ] = dataPriv.get( elem, "display" ) || null; if ( !values[ index ] ) { elem.style.display = ""; } } if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { values[ index ] = getDefaultDisplay( elem ); } } else { if ( display !== "none" ) { values[ index ] = "none"; // Remember what we're overwriting dataPriv.set( elem, "display", display ); } }
-
jargonphp bunu yazdı
yazdığım içeriğin "Devamını göster" deyince açılmasını istiyorum. Normalde kullanıcı içeriği görmesin,
hepsiburada.com'daki gibi. devamını göster diyorsun yazı açılıyor, sonra devamını gizle diyorsun kapanıyor. Yazılım kıtlığım olduğundan yapamıyorum. Sayfaya uzunca içerik gireceğim. Eticaret sitesinde o kadar uzun yazıyı gizlemekten başka seçenek yok. İlk mesajda yazdığım kodla yaptım da display none kullandım yazıyı gizlemiş oluyorum google amca istemiyor. İşi bilenlere sorayım dedim
display: none yapınca kullanıcılardan gizliyorsun sadece. Google'dan değil.
Google tam olarak bunu istiyor. Yaptığın şey de hata yok.
neverland tarafından 02/Eyl/20 15:29 tarihinde düzenlenmiştir -
Eğer bir divi ikiye bölüyorum paragraf sıkıntıya giriyor diyorsan diye şöyle bir şey yazdım;
https://jsfiddle.net/mnote207/3/
Olabildiğince az kod kullandım
Çok daha kısa ama işlevsiz halini de birazdan atarım
-
neverland bunu yazdıjargonphp bunu yazdı
yazdığım içeriğin "Devamını göster" deyince açılmasını istiyorum. Normalde kullanıcı içeriği görmesin,
hepsiburada.com'daki gibi. devamını göster diyorsun yazı açılıyor, sonra devamını gizle diyorsun kapanıyor. Yazılım kıtlığım olduğundan yapamıyorum. Sayfaya uzunca içerik gireceğim. Eticaret sitesinde o kadar uzun yazıyı gizlemekten başka seçenek yok. İlk mesajda yazdığım kodla yaptım da display none kullandım yazıyı gizlemiş oluyorum google amca istemiyor. İşi bilenlere sorayım dedim
display: none yapınca kullanıcılardan gizliyorsun sadece. Google'dan değil.
Google tam olarak bunu istiyor. Yaptığın şey de hata yok.
Önceki mesajdaki bağlantıyı da inceledim. Sorun yok o zaman, kodlar da çalışıyor zaten. Teşekkür ederim
Konuyla ilgilenen herkese teşekkür ediyorum. -
Bu da javascriptsiz useless hali
https://jsfiddle.net/mnote207/4/
Özet&Açıklama
Google açısından display:none yeni nesil frontend development açısından etkili. Çünkü tarayacı nasıl görürse Google da o şekilde indexliyor. Böyle olmasa vuejs gibi reactive frameworkler bir boka yaramazdı.
Bir diğer durumda da bir metni iki farklı dive böldüğünde google yine her halükarda bunu iki farklı paragraf olarak algılar.
Çözüm olarak jsfiddle verdiğim iki örneği de inceleyebilirsin
by_Tet tarafından 02/Eyl/20 16:08 tarihinde düzenlenmiştir -
by_Tet bunu yazdı
Eğer bir divi ikiye bölüyorum paragraf sıkıntıya giriyor diyorsan diye şöyle bir şey yazdım;
https://jsfiddle.net/mnote207/3/
Olabildiğince az kod kullandım
Çok daha kısa ama işlevsiz halini de birazdan atarım
Bu kodlara, yazı açıldıktan sonra "devamını gizle" ekleyebilir misiniz? Yazıyı geri de kapatmak lazım. Onu nasıl yapacağımı bilmiyorum