Just hiding the page when in landscape orientation, without alerting
the user as to why, will generate calls to the help desk (if one is
running a supported business or consumer app).

Nice code, I'd just add an alert() when making the user's screen go
blank.


On Nov 19, 11:12 pm, Jake Wolpert <[EMAIL PROTECTED]> wrote:
> //shorter and less obtrusive, just hides the page when page in  
> landscape mode
> window.onload = window.onorientationchange = function(){
>         setTimeout(scrollTo, 0, 0, 1);
>         document.body.style.display = ( window.orientation == 90 ||  
> window.orientation == -90 ) ?'none':'block';    
>
> }
>
> On Nov 19, 2007, at 10:07 PM, riactant wrote:
>
>
>
>
>
> > Here's the approach I've used:
> > 1. Detect orientation change
> > 2. Make visible a screen layer (such as a layer with gray bg color,
> > 50% alpha, and top-most z-order) to prevent interaction with your
> > application
> > 3. Display an alert informing the user that the app is designed to
> > only work in Portrait mode
> > 4. Upon orientation change back to Portrait mode, hide the screen
> > layer so user can interact again with app.
>
> > Here's my function:
>
> >    function orientationChanged(){
> >            document.getElementById("landscapeScreen").style.visibility =
> > "visible";
> >            if ( window.orientation == "90" || window.orientation == "-90" ){
> >                    alert("This application is designed to only operate in 
> > Portrait
> > mode.\nPlease rotate your iPhone to Portait mode to continue using the
> > application.");
> >            }
> >            else
> >            {
> >            document.getElementById("landscapeScreen").style.visibility =
> > "hidden";
> >            }
> >    }
>
> > Mike Brophy
> > Seattle
>
> > On Nov 6, 10:44 am, "Steve Finkelstein" <[EMAIL PROTECTED]> wrote:
> >> Thanks august. :-)
>
> >> And yeah, I just found out myself that window.orientation is a
> >> read-only property. Try to cancel the Event during the capturing  
> >> phase
> >> isn't workable either.
>
> >> Time to write additional CSS!
>
> >> - sf
>
> >> On 11/6/07, August Trometer <[EMAIL PROTECTED]> wrote:
>
> >>> Good try, but I think window.orientation is something that the  
> >>> browser
> >>> sets, and you can't affect it with code.
>
> >>> What I was suggesting is something more like:
>
> >>> function orientationChanged() {
>
> >>>        if ( window.orientation == '90' || window.orientation ==  
> >>> '-90' ||
> >>>                        window.orientation == '180' )
> >>>                document.body.className = 'landscape';
> >>>        else
> >>>                document.body.className = 'portrait';
> >>> }
>
> >>> Then, in your CSS, you can have different styles for elements in
> >>> portrait or landscape mode.
>
> >>> Depending on what, exactly, you're trying to do, though, Randy is
> >>> right: it's simpler just to use percents, i.e. 100%, etc. as width
> >>> parameters. This allows your page to display regardless of  
> >>> orientation.
>
> >>> Also keep in mind that it's quite possible (I'd say likely) that  
> >>> Apple
> >>> will release an "iPhone HD" with, say, a 240 pixels per inch  
> >>> display,
> >>> or the again-rumored table with who-knows- how-many-pixels. Anything
> >>> based on 320 pixels wide will need reworked. By using %s, you can  
> >>> keep
> >>> yourself from having several versions of the same site.
>
> >>> August
>
> >>> On Nov 6, 2007, at 12:10 PM, Steve Finkelstein wrote:
>
> >>>> Thanks August..
>
> >>>> I'm having a bit of difficulty panning the view back into  
> >>>> portrait ..
> >>>> if any suggestions to the following code can be made it would be
> >>>> totally wonderful... I figured it would do the trick, but  
> >>>> apparently
> >>>> not. :-)
>
> >>>> function orientationChanged() {
>
> >>>>      if ( window.orientation == '90' || window.orientation ==  
> >>>> '-90' ||
> >>>>                      window.orientation == '180' )
> >>>>                      /* flip back to portrait view. */
> >>>>                      window.orientation = 0;
> >>>>           alert(window.orientation);
> >>>> }
>
> >>>> - sf
>
> >>>> On 11/6/07, August Trometer <[EMAIL PROTECTED]> wrote:
>
> >>>>> You can'tpreventlandscape mode, but you can detect it, then adjust
> >>>>> your page as necessary. iPhone 1.1.1 introduced the
> >>>>> "onorientiationchange" JavaScript event. You can use it like this:
>
> >>>>> <body onorientationchange="orientationChanged()">
>
> >>>>> Then in orientationChanged() look at the window.orientation  
> >>>>> property
> >>>>> to determine the orientation of the screen. You can then set CSS
> >>>>> properties accordingly.
>
> >>>>> As far as input boxes, if you use a form element name that uses  
> >>>>> 'zip'
> >>>>> in it, a numerical input box will be used. For example:
>
> >>>>> <input type="text" name="thisisnotazip" size="20" />
>
> >>>>> Good luck!
>
> >>>>> August
>
> >>>>> On Nov 6, 2007, at 11:39 AM, Steve Finkelstein wrote:
>
> >>>>>> Hi folks,
>
> >>>>>> I was curious if anyone had a code snippet topreventlandscape  
> >>>>>> view
> >>>>>> from happening in an application? I currently haven't optimized  
> >>>>>> my
> >>>>>> CSS
> >>>>>> to propagate if the phone gets tilted 90 degrees and would like  
> >>>>>> to
> >>>>>> preventlandscape view from creeping up.
>
> >>>>>> Also, one other question, is it possible to force only a  
> >>>>>> numerical
> >>>>>> keyboard to come up for certain input boxes?
>
> >>>>>> Thanks for the help. :-)
>
> >>>>>> - sf- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"iPhoneWebDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/iphonewebdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to