Popup Box Yapma!

Bu konuyu okuyanlar

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0
Arkadaşlar,

İstediğim şey aşağıdaki resimdeki gibi açılabilir menubox ve popup boxlar yapmak.
Nette gezmediğim site kalmadı. Doğru düzgün bir çözüm yolu bulamadım.

Kendim yapıyorum fakat. Facebook veya Twitter'daki gibi dinamik çalışmıyor.
Popup box veya menu box sayfada açılınca sayfa kayıyor.
Hazır tool'lardan nefret ettim. O yüzden kendim yapmak istiyorum.

Öğrenmek istediğim bunları sayfada nasıl saklıyorlar ve aktif hale geldiğinde nasıl bu kadar dinamik çalışıyor. Nasıl bir css ve javascript kullanmak gerekiyor.

Bu konuda bilgisi olan arkadaşlardan yardımlarını rica ediyorum.

Resim:
 

kizanlik

Asistan
Katılım
25 Mart 2012
Mesajlar
250
Reaksiyon puanı
0
Puanları
0
[MENTION=101142]mstfcck[/MENTION]:

CSS. Mesela tr:hover kullanımı var. Fare TableRow üzerine gelince bi' iş yapıyor.

Çok ayrıntılı konu. CSS öğreten kaynaklara gözatmalısın.
 

kosasker

Profesör
Katılım
24 Aralık 2008
Mesajlar
3,195
Reaksiyon puanı
49
Puanları
48
Jquery.ui.dialog' u bu iş için kullanabilirsin. JQuery öğrenmen yerinde olur. Onu çözeyim derken zaten ister istemez CSS ve doğal javascript'in dibine inmiş olacaksın.
 

burns206

Profesör
Katılım
31 Mart 2011
Mesajlar
1,866
Reaksiyon puanı
1
Puanları
0
hehe facebookon ilgili sayfasini download edip incelesen daha basit olucakti sanki :p
 

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0
@mstfcck:

CSS. Mesela tr:hover kullanımı var. Fare TableRow üzerine gelince bi' iş yapıyor.

Çok ayrıntılı konu. CSS öğreten kaynaklara gözatmalısın.

CSS'nin altını üstüne getirdim...


Jquery.ui.dialog' u bu iş için kullanabilirsin. JQuery öğrenmen yerinde olur. Onu çözeyim derken zaten ister istemez CSS ve doğal javascript'in dibine inmiş olacaksın.

JQuery'de biliyorum baya.



Bunları daha önce incelemiştim.


Teşekkür ederim ilgileriniz için ama istediklerim bunlar değil. Bunları daha önce ben yüzlerce kez gördüm. Ki bu birazda yetenek istiyor. Sizden istediğim sadece işin mantığı. Örneğin: Bir div'i veya ul'yi sayfada nasıl saklarsın. Bunu aktif hale getirdiğinde ilgili menu resim vb. şeylerin etrafına nasıl doğru şekilde konumlayabilirim. Bunun gibi şeyler. Kendim yapıyorumda. Yeterli görmüyorum. Kendi yaptığınız şeyler varsa lütfen bunlardan örnek verin. Benim bu gibi örneklerle dolu yüzlerce dökümanım var.

Tekrar teşekkürler.

--- Mesaj Güncellendi ---

hehe facebookon ilgili sayfasini download edip incelesen daha basit olucakti sanki :p

Onu da denediğime emin olabilirsiniz. İndirmedim ama bütün Css'leri inceledim. Sadece facebook'da değil. Bunun gibi birçok sitenin.
 

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0

re13el

Dekan
Katılım
28 Şubat 2011
Mesajlar
9,153
Reaksiyon puanı
114
Puanları
63
@mstfcck Ben daha yeni başlıycam inşallah. O sebebten kendi bilgim yok henüz. :D
 

ck-xe

Dekan
Katılım
4 Nisan 2010
Mesajlar
5,558
Reaksiyon puanı
39
Puanları
48
HTML5 de kullanılmış olabilir.
 
Katılım
31 Aralık 2007
Mesajlar
17,485
Reaksiyon puanı
188
Puanları
63
Bir tane template hazırlayıp veriyi üzerine jQuery ile override edebilirsin. Çok zor bir şey olmasa gerek...
 

mortalrocky

Asistan
Katılım
18 Şubat 2008
Mesajlar
145
Reaksiyon puanı
2
Puanları
0
konumlardırma http://api.jquery.com/offset/ ile yapılıyor. Sayfayanın en üstüne display:none; olan bir div yerleştir. Sonra tıklanması gereken tagın offset-left ve offset top al. Sonra sayfanın en üstüne yerleştirdiğin div'i show et ve css left:eek:ffset-left; top:eek:ffset-top; inş anlatabilmişimdir :D
 

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0
konumlardırma http://api.jquery.com/offset/ ile yapılıyor. Sayfayanın en üstüne display:none; olan bir div yerleştir. Sonra tıklanması gereken tagın offset-left ve offset top al. Sonra sayfanın en üstüne yerleştirdiğin div'i show et ve css left:eek:ffset-left; top:eek:ffset-top; inş anlatabilmişimdir :D

Pek açık bi anlatım olmadı ama araştıracağım :) Teşekkürler.
 

mortalrocky

Asistan
Katılım
18 Şubat 2008
Mesajlar
145
Reaksiyon puanı
2
Puanları
0
şöyle anlatıyım sayfanın en üstüne <div class="bubble"></div> yerleştir. css'i display:none;position:absolute;z-index:1000;

<a class="tikla">tıkla</a>

.tikla'nın click eventinde tikla'nın ofset top ve left'ini alacaksın ve bubble show edeceksin. Sonra bu değerleri bubble vereceksin.

.bubble( "left: " + offset.left + ", top: " + offset.top);

umarım şimdi daha iyi olmuştur.
 

orcnd

Dekan
Katılım
13 Ekim 2008
Mesajlar
6,394
Reaksiyon puanı
255
Puanları
63
jquery'de herhangi bir nesnenin bulunduğu yeri position ile alabilyorsun sonrası keyfine kalıyor

var pos=$('div#menu').position();

$('#popup').css('left', pos.left + 'px').css('top', pos.top + 'px').fadeIn('slow');

gibi şeyler üretebilirsin
 

kizanlik

Asistan
Katılım
25 Mart 2012
Mesajlar
250
Reaksiyon puanı
0
Puanları
0
[MENTION=101142]mstfcck[/MENTION]:

Masaüstü uygulamadaki butonu ele alalım.

MouseOver (event bu) --> button.MouseOver { yapılacak işler }

CSS'te de TAGlar var.

<a>
<DIV>

"a:hover { style }" yukarıdaki mantığa benziyor. "hover" event burada. Oluştuğunda, style tanımları çalışıyor.

Temel mantığı bu.
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
jquery bunun için biçilmiş kaftandır ;) yapman gerekeni basitçe anlatırsak.

arkada box'un içine çekeceğin datayı hazırlayan bir sayfa. Bu sayfayı ajax çağrıları ile çağırıp sonucu istediğin yerde istediğin formatta ( css yardımı ile ) gösterebilirsin.

--- Mesaj Güncellendi ---

ayrıca popup box diye değil de modal box diye aratırsan çok daha faydalı sayfaları bulabilirsin :)
 

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0
İşte beklediğim cevaplar :) Herkese çok teşekkürler.

Offset'de Position'da işe yarıyor.

İlk örneği yaptım:

<!DOCTYPE html>
<html>
<head>
<style>
p { margin-left:10px; }
.bubble { display:none; position:absolute; z-index:1000px; width:100px; height:150px; background:#ddd; box-shadow:1px 1px 5px #333}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function () {
$( ".tikla" ).hover(
function() {
var offset = $(this).offset();
$('.bubble').css('left', offset.left + 'px').css('top', 25+offset.top + 'px').fadeIn('slow');
},
function() {
$('.bubble').delay(1000).fadeOut('slow');
}
);
});
</script>
</head>
<body>
<div class="bubble">
<div>Bu bir denemedir.</div>
</div>
<div style="padding:100px; background:#eee;">
<a class="tikla" href="#">tıkla</a>
</div>
</body>
</html>


Başka neler yapılabilir, fikri olan?
 

mortalrocky

Asistan
Katılım
18 Şubat 2008
Mesajlar
145
Reaksiyon puanı
2
Puanları
0
a tagındaki title'ları attr ile çekip .bubble bastırabilirsin böylece dinamik bir yapı olur.
 

orcnd

Dekan
Katılım
13 Ekim 2008
Mesajlar
6,394
Reaksiyon puanı
255
Puanları
63
offset kullanırsan ekrandaki konumunu verir yani ekranda bulunduğu konumu verir. bu sayfaya sığmayan sayfanın al tarafında kalan scroll yaparak görünebilen şeylerde sıkıntı yaratabilir.
 

annttiigs

Profesör
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
z-index'i 1000 falan yapmana da gerek yok. sadece diğerlerinden fazla olsun yeter. demek istediğim kendini 1000'e şartlama.
 

mstfcck

Asistan
Katılım
18 Mart 2010
Mesajlar
174
Reaksiyon puanı
5
Puanları
0
a tagındaki title'ları attr ile çekip .bubble bastırabilirsin böylece dinamik bir yapı olur.

Evet iyi fikir.

offset kullanırsan ekrandaki konumunu verir yani ekranda bulunduğu konumu verir. bu sayfaya sığmayan sayfanın al tarafında kalan scroll yaparak görünebilen şeylerde sıkıntı yaratabilir.

Hocam, peki position mı kullanmalıyım? Sizde tavsiye ediyosunuz.

z-index'i 1000 falan yapmana da gerek yok. sadece diğerlerinden fazla olsun yeter. demek istediğim kendini 1000'e şartlama.

Oke hocam teşekkürler :)


Bir de sormak istediğim bişey var. Bu ekranda popup olarak gösterdiğim şeyleri sayfada istediğim yerde saklasak sorun olur mu? [MENTION=27855]mortalrocky[/MENTION] sayfanın en üstüne demişti de o yüzden soruyorum. facebook'un sayfalarını inceledim. Adamlar istediği yere koymuşlar. Yapılabilir gibi?
 

mortalrocky

Asistan
Katılım
18 Şubat 2008
Mesajlar
145
Reaksiyon puanı
2
Puanları
0
[MENTION=101142]mstfcck[/MENTION] tabiki istediğin yere koyabilirsin sonuçta z-indexle her hangibir div'in üstene alabilirsin. Ben sadece örnek verdim. Açtığın popup bütün elementlerin üzerinde olması gerektiği için ben sayfanın en üstüne koyuyorum ve z-index de 999 yapıyorum :D
 
Üst