Javascript 在不使用滚动条的情况下在巨大的html页面上移动浏览器视图

Javascript 在不使用滚动条的情况下在巨大的html页面上移动浏览器视图,javascript,jquery,html,view,Javascript,Jquery,Html,View,我有一个非常大的html页面(比如7000*5000),我需要用javascript在页面上移动用户的视图 我可以通过移除浏览器滚动条(溢出:隐藏在html上)很容易地让用户无法自己移动,接下来我需要做的是在js/jquery中控制“摄像头”在这个巨大页面上的移动 即使我搜索了很多,我也没有在网上找到任何东西,除了使用带有平滑jQuery滚动的锚,垂直移动是可以的(即使不是很整洁),但是水平移动会变得非常复杂 有没有办法做到这一点 非常感谢:)查看jQuery的动画功能。也许你可以这样做: fu

我有一个非常大的html页面(比如7000*5000),我需要用javascript在页面上移动用户的视图

我可以通过移除浏览器滚动条(溢出:隐藏在html上)很容易地让用户无法自己移动,接下来我需要做的是在js/jquery中控制“摄像头”在这个巨大页面上的移动

即使我搜索了很多,我也没有在网上找到任何东西,除了使用带有平滑jQuery滚动的锚,垂直移动是可以的(即使不是很整洁),但是水平移动会变得非常复杂

有没有办法做到这一点


非常感谢:)

查看jQuery的动画功能。也许你可以这样做:

function movePage(newTop, newLeft){
    $('#pageview').animate({left:newLeft + "px", top: newTop + "px"});
}

请更新您的问题,并解释您何时想要移动页面,我可以尝试帮助您更多

查看jQuery的动画功能。也许你可以这样做:

function movePage(newTop, newLeft){
    $('#pageview').animate({left:newLeft + "px", top: newTop + "px"});
}

请更新您的问题,并解释您何时想要移动页面,我可以尝试帮助您更多

jQuery scrollTo和localScroll插件非常适合这种情况。请看这里:有关选项,请看这里的演示:

这些插件允许您对动画进行排队,并定义同时水平和垂直滚动的设置,或先垂直再水平滚动的设置,等等


Neal

jQuery scrollTo和localScroll插件非常适合这种情况。请看这里:有关选项,请看这里的演示:

这些插件允许您对动画进行排队,并定义同时水平和垂直滚动的设置,或先垂直再水平滚动的设置,等等


Neal

您的主要周围元素、div或section如果您确实有一个,请将其设置为太固定。与其在浏览器窗口中实际滚动,不如重新定位屏幕上的内容,并提供滚动效果。用户不会知道区别。

您的主要周围元素、div或section如果您确实有,请将其设置为太固定。与其在浏览器窗口中实际滚动,不如重新定位屏幕上的内容,并提供滚动效果。用户不会知道两者之间的区别。

如果您的浏览器不支持,您仍然可以使用JS滚动它-无论是否有CSS显示的滚动条

对于整个窗口,可以使用及其派生

对于单个DOM元素,这可以通过设置和属性来实现

使用这两种方法,您将能够构建(jQuery)动画,当然已经有一些插件可以实现这一点。例如,我发现了,但可能内置的方法和就足以满足您的需要。在这个世界上也有类似的东西

 $(someSelector).animate({scrollLeft: someNumber}, 'slow');
已提到。

如果您的应用程序是,您仍然可以使用JS滚动它-无论是否有CSS显示的滚动条

对于整个窗口,可以使用及其派生

对于单个DOM元素,这可以通过设置和属性来实现

使用这两种方法,您将能够构建(jQuery)动画,当然已经有一些插件可以实现这一点。例如,我发现了,但可能内置的方法和就足以满足您的需要。在这个世界上也有类似的东西

 $(someSelector).animate({scrollLeft: someNumber}, 'slow');

如果你想做你自己的事情,你可以这样做

var targetOffset = $('#post-10').offset().top ;
var scrollElem = scrollableElement('html', 'body');

$(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
    // scroll is complete
      location.hash = 'post-10';
});

   // Use the first element that is "scrollable"  (cross-browser fix?)
function scrollableElement(els) {
    for (var i = 0, argLength = arguments.length; i <argLength; i++) {
        var el = arguments[i],
        $scrollElement = $(el);
        if ($scrollElement.scrollTop()> 0) {
            return el;
        } else {
            $scrollElement.scrollTop(1);
            var isScrollable = $scrollElement.scrollTop()> 0;
            $scrollElement.scrollTop(0);
            if (isScrollable) {
                return el;
            }
        }
    }
    return [];
}
我强烈推荐这个插件,它可以在水平/垂直方向上显示很多效果


如果你想做自己的事情,你可以这样做

var targetOffset = $('#post-10').offset().top ;
var scrollElem = scrollableElement('html', 'body');

$(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
    // scroll is complete
      location.hash = 'post-10';
});

   // Use the first element that is "scrollable"  (cross-browser fix?)
function scrollableElement(els) {
    for (var i = 0, argLength = arguments.length; i <argLength; i++) {
        var el = arguments[i],
        $scrollElement = $(el);
        if ($scrollElement.scrollTop()> 0) {
            return el;
        } else {
            $scrollElement.scrollTop(1);
            var isScrollable = $scrollElement.scrollTop()> 0;
            $scrollElement.scrollTop(0);
            if (isScrollable) {
                return el;
            }
        }
    }
    return [];
}
我强烈推荐这个插件,它可以在水平/垂直方向上显示很多效果


您可以从许多类似的方法中进行选择,例如在内容分区上使用相对位置、绝对位置或负边距。您可以从许多类似的方法中进行选择,例如在内容分区上使用相对位置、绝对位置或负边距。非常感谢我将对此进行深入研究,我已经看到了这些插件,但我没有意识到它们可以进行水平滚动,甚至是对角滚动。不管怎样,是否有一种“直接”的方式来控制视口?要使用moveright(100)功能移动100px右侧的浏览器窗口吗?当然,使用滚动插件,我可以滚动到一些div,然后可以移动它们,但在我看来,这不是很整洁。再次感谢谢谢你,我已经设法使用这些插件创建了一个流体滚动系统,每100毫秒滚动100像素。问题是,它在我的电脑上运行得很好,但如果我在功能较弱的电脑(如上网本)上试用,它会运行得有点慢,滚动队列也会出现问题。如何禁用队列/优化滚动?多谢了,谢谢了,我将继续研究,我已经看到了这些插件,但我没有意识到它们可以做水平滚动,甚至是对角滚动。不管怎样,是否有一种“直接”的方式来控制视口?要使用moveright(100)功能移动100px右侧的浏览器窗口吗?当然,使用滚动插件,我可以滚动到一些div,然后可以移动它们,但在我看来,这不是很整洁。再次感谢谢谢你,我已经设法使用这些插件创建了一个流体滚动系统,每100毫秒滚动100像素。问题是,它在我的电脑上运行得很好,但如果我在功能较弱的电脑(如上网本)上试用,它会运行得有点慢,滚动队列也会出现问题。如何禁用队列/优化滚动?谢谢你,把这个问题标记为对你最合适的答案:)把这个问题标记为对你最合适的答案:)