有人能讓我知道jquery mobile在手機間隙中的方向更改事件的正確代碼嗎?我在哪裏以及如何實現這個orientationChange功能?由jquery mobile在手機間隙實現的方向更改事件
23
A
回答
45
$(window).bind('orientationchange', _orientationHandler);
然後在_orientationHandler
功能,有類似:
if(event.orientation){
if(event.orientation == 'portrait'){
//do something
}
else if(event.orientation == 'landscape') {
//do something
}
}
11
$(window).bind('orientationchange', function(e){
if ($.event.special.orientationchange.orientation() == "portrait") {
//Do whatever in portrait mode
} else {
//Do Whatever in landscape mode
}
});
您可以在綁定功能的情況下,參數添加resize事件,如果你的目標iOS和orientationchange不起作用。由於改變方向也會觸發調整大小事件。
1
以下代碼應該適用於所有瀏覽器,以檢測方向更改。它不使用jquery移動事件,但似乎適用於大多數設備。
1. var isIOS = /safari/g.test(navigator.userAgent.toLowerCase());
2. var ev = isIOS ? 'orientationchange' : 'resize';
3. var diff = (window.innerWidth-window.innerHeight);
4. $(window).bind(ev,function(){
5. setTimeout(function(){
6. if(diff*((window.innerWidth-window.innerHeight)) < 0)
7. orientationChanged();
8. },500);
9. });
2號線佔用任何非Safari瀏覽器,因爲在其他設備其他瀏覽器相比方向改變事件佔用resize事件更一致resize事件。 http://www.quirksmode.org/m/table.html
第5行執行超時檢查,因爲一些android原生瀏覽器不會立即佔用新的寬度。
第6行對於發生的方向改變,舊的和新的高度和寬度的差異的乘積應該是負的。
0
我使用這個在我的手機模板,orientationChange事件是不會觸發iOS上的Safari瀏覽器7:
// ORIENTATION CHANGE TRICK
var _orientation = window.matchMedia("(orientation: portrait)");
_orientation.addListener(function(m) {
if (m.matches) {
// Changed to portrait
$('html').removeClass('orientation-landscape').addClass('orientation-portrait');
} else {
// Changed to landscape
$('html').removeClass('orientation-portrait').addClass('orientation-landscape');
}
});
// (event is not triggered in some browsers)
$(window).on('orientationchange', function(e) {
if (e.orientation) {
if (e.orientation == 'portrait') {
$('html').removeClass('orientation-landscape').addClass('orientation-portrait');
} else if (e.orientation == 'landscape') {
$('html').removeClass('orientation-portrait').addClass('orientation-landscape');
}
}
}).trigger('orientationchange');
// END TRICK
+0
與此腳本您可以根據方向輕鬆編寫css規則 – itsjavi 2014-06-18 10:54:52
相關問題
- 1. android-jquery mobile使用web視圖代替手機間隙
- 2. 當手機更改方向
- 3. DW CS6 - 手機間隙
- 4. 如何在iphone手機間隙中實現背景處理sdk
- 5. 更改jQuery Mobile的轉型方向
- 6. 黑莓手機間隙
- 7. jquery-mobile onchange事件更改圖標
- 8. 根據手機方向更改UITableViews
- 9. 圖像不顯示在手機間隙?
- 10. 手機間隙Ajax在https上失敗
- 11. 在手機間隙運行https請求
- 12. iOS中的手機間隙集成
- 13. 手機間隙閃屏中的NSInternalInconsistencyException
- 14. 外部jQuery的手機沒有實現jQuery的手機風格
- 15. JQuery Mobile:當手機在縱向時抓取橫向寬度
- 16. 在jQuery Mobile中更改方向變化的網格數量
- 17. JQuery onChangeDate事件手動更改日期
- 18. jQuery Mobile的,我怎麼手動更改頁面上的「pagebeforeload」事件
- 19. jQuery手機滑塊輸入更改事件
- 20. jQuery Mobile:抓住「手指按下」事件
- 21. 獲取手機的實際方向
- 22. jQuery Mobile的changePage()無法在Windows手機
- 23. Android手機方向更改中的隨機ArrayIndexOutOfBoundsException
- 24. 我如何調試手機間隙PushPlugin?
- 25. 手機間隙android環境設置
- 26. 手機間隙設置工作目錄
- 27. Android配置手機間隙問題
- 28. PIN碼屏幕手機間隙android
- 29. jQuery手機(點擊事件)
- 30. jQuery手機重複事件
無論ü要與方向的變化做。 – ghostCoder 2012-04-05 11:25:33
如果你看到splitview代碼,你可以看到他做了什麼隱藏一個面板potrait模式 – ghostCoder 2012-04-05 11:25:52
你的意思是...就像改變身體的寬度和高度... – Nishant 2012-04-05 11:37:35