2011-11-12 19 views
18

iOS safari'de, tek parmakla kaydırma, kullanıcı kaydırma işlemini durdurana kadar herhangi bir olay oluşturmaz. Bir onscroll olayı sadece sayfa hareket etmeyi ve yeniden çizmeyi bıraktığında oluşturulur.iOS Safari'de çalışan bir "yapışkan" sabit konumlu öğe oluşturma

Gerçek zamanlı kaydırmayı algılamanın bir yoluna ihtiyacım var. Özellikle, iOS safari üzerinde çalışacak bir yapışkan menü yapmak istiyorum. Mobil olmayan tarayıcılarda, yapışkan menü, olay kayıtlarını dinlerken öğeye "konum bağıntısı" ile "konum sabitleme" arasında geçiş yapılarak yapılabilir. Bu yöntem mobil tarayıcıda çalışmayacaktır, çünkü inroll olayları sürekli olarak tetiklenmez. Ne yapabilirim?

+0

Bunu gerçekleştirmenin bir yolu (ister hacker-ish olsun) kendi dikey Pan hareketlerinizin tanınmasını sağlamak ve web görünümüne eklemek olabilir. Böylece olayları almak için -state özelliğini kullanabilirsiniz. – CodaFi

+2

Dokunmaya dokunun ve sayfanın y izini izleyin – sciritai

cevap

0

İstediğiniz tek şey yapışkan bir menü ise, varolan bir kitaplığı kullanarak kendinize bazı baş ağrıları kazandırabilirsiniz. Ben iScroll ile başarı elde ettik: En azından

http://cubiq.org/iscroll

, bu nasıl çalıştığına bir göz atın ve bu çevrede çözümünüzü temel alabilirsiniz.

Mutlu hack!

-3

Kesin olan eski konu, ama burada bir sürü ziyaret görebilirsiniz. İstediğiniz, yapışkan bir menü ise, sabit konumlandırmayı kullanabilirsiniz. Orada iScroll gerek yok.

+0

Sabit konumlandırmanın pek çok mobil tarayıcıda iyi desteklenmediği belirtilmelidir. Daha fazla bilgi için: http://bradfrostweb.com/blog/mobile/fixed-position/ –

+1

Soruyu soran kişinin, çözümümden çok daha az destekle bir çözüm bulduğuna dikkat etmeliyim ... ve ben buna katılmıyorum pozisyon desteği ile ilgili beyanınız: sabit: http://caniuse.com/css-fixed –

+1

Neye katılmamanız gerekiyor? "IOS Safari'de kısmi destek, buggy davranışını ifade eder." Yani, mobil tarayıcıların% 50'sinde buggy davranışı kabul edilebilir mi? –

3

Kısa süre önce aynı sorun için pratik bir çözüm bulmaya çalışırken çok zaman harcadım. Bunu yapmak için doğru bir yol yoktur, ancak birkaç iyi korsan olmasına rağmen (bunların çoğu zaten belirtilmiştir). Sorun, kullanıcı gezinirken JavaScript'in duraklatılmasıdır. Sonuçları düşündüğünüzde anlamlıdır, ancak sabit konumlandırılmış eleman uygulamak zorlaşır.

Bulabildiğim en iyi şey, Google'daki milletlerin bu harika gönderisidir. Hareket halindeyken görmek için mobil safaride http://gmail.com adresini kontrol edebilirsiniz. Bu yardımcı olur

https://developers.google.com/mobile/articles/webapp_fixed_ui

Umut.

+1

Bu bağlantı, Geliştiriciler ana sayfasına yönlendirir. Bulabildiğim en iyi şey arşiv.org.tr: https://web.archive.org/web/20141001100814/https://developers.google.com/mobile/articles/webapp_fixed_ui – duncan

2

Tek bir parmak kaydırma işlemini algılamak için jquery'yi kullanarak touchstart/touchmove/touchend'e dokunarak benzer bir sorunla karşılaştım ve işleyicileri bağladım. Benim durumumda başka bir öğenin başka bir öğenin girişme hareketiyle aynı miktarda hareket etmesi gerekti ve kaydırma girişiminde bulunduğundan güzel bir şekilde güncellendi, böylece gereksiniminize uygun olması gerekiyordu.

İlgili konular