mpetroff / pannellum

Pannellum is a lightweight, free, and open source panorama viewer for the web.
https://pannellum.org/
MIT License
4.25k stars 722 forks source link

Rotating in touch devices when scene isn't in full screen #255

Open mfidemraizer opened 8 years ago

mfidemraizer commented 8 years ago

Hi!

I'm experiencing issues with manually rotating scenes in touch devices (mobile phones, either Android and iOS) when the whole scenes aren't in full screen mode.

Basically, when I start to drag the scene, it goes down or up suddenly. Or it's hard to move the scene at all.

I can't reproduce the behavior using Chrome's device view on my PC.

BTW, in my Android phone (Xiaomi Redmi2 MIUI8 Android 4.4.4), when I switch Pannellum to full screen, the problem is gone unless I try to rotate the scene without the full screen mode again...

mpetroff commented 8 years ago

Is this only for a specific configuration? Do the examples exhibit this behavior as well? I can't reproduce the issue under either iOS 10 or Android 5.1 for either the current release or the development version.

mfidemraizer commented 8 years ago

@mpetroff

Actually I've integrated Pannellum as part of an Angular 1.5.x directive that looks as follows:

function directive() {
    var options = {
        link: function(scope, element, attributes) {
            element[0].id = `pannellum-${Math.floor((Math.random() * 9999) + 1)}`;

            pannellum.viewer(element[0].id, {
                type: "equirectangular",
                panorama: attributes.src,
                autoLoad: true
            });
        }
    };
    return options;
}

Pannellum's samples are working fine, BTW, I can't figure out why my case has this issue.

Do you find anything in my code that could be the root of the issue?

Thank you in advance!

mpetroff commented 8 years ago

I don't see anything in your code, but if the examples work, it's almost definitely the result of an interaction with Angular, either with JS event handlers or CSS. I've never used Angular, so I can't be sure. I'd recommend connecting Chrome on Android to a computer and using Chrome's dev tools timeline to see what other functions are called during touch events.