Source: I've done it both ways for several apps and people always complain, either way.
Having to click and drag in the opposite direction is pretty weird though. First person shooter style "move mouse left to look left / move environment right" is just mouse movements. You're not grabbing something to drag it, so there's no clicks.
Tough to translate that into a windowed thing where you can't do fullscreen mouse ownership like shooters do.
After all, when you press the button, the fingers close as if they are grabbing something in the scene. In real life, when you grab something and move it, it goes in the direction you move, not the opposite direction.
Someone correct me if I'm wrong, but I believe in large part it's gamers who tend to expect the reverse dragging. I think at this point far more people expect natural dragging as used in most online maps and street views, etc.
360cities used to have the reverse dragging, but I see they have changed it to natural dragging now. Try the panorama on their home page for example:
But the other thing I was told about gamers is that they don't expect to drag with the left button, but with the right button.
This suggests a possible solution: a left-button drag can use natural dragging, and a right-button drag can use reverse dragging.
The finishing touch would be to have the cursor change to something other than the closed hand when the right button is down. I'm not sure what a suitable cursor would be, but there must be something - anything other than the closed hand. Maybe a four-way arrow?
That said, I have no idea if JavaScript can capture the mouse like that.
https://developer.mozilla.org/en-US/docs/Web/API/Element/set...
Or for a capture that works even if the mouse button is not pressed, and remains until the Esc key is pressed:
https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Loc...
The first option would be the one to use for right button dragging.
What's right?
Pointer lock should be done, but we count the desktop drag as a non-invasive preview mode, but experiences can implement pointer lock if they need.