Javascript 在同一页面上需要多个相同的jQuery效果
所以我使用这个jquery后台滚动程序,基本上我想在同一个页面上获得两个以上的页面(以不同的速度运行),但我不知道如何做到这一点Javascript 在同一页面上需要多个相同的jQuery效果,javascript,jquery,scroll,Javascript,Jquery,Scroll,所以我使用这个jquery后台滚动程序,基本上我想在同一个页面上获得两个以上的页面(以不同的速度运行),但我不知道如何做到这一点 我可以在脚本中添加其他css,但我希望其他div的速度有所不同。@andy,这是Tom Th的想法;ie是一个js构造函数,您可以从中实例化多个实例: function bgScroller(options) { var settings = { containerID: '', //id of the scroller's containi
我可以在脚本中添加其他css,但我希望其他div的速度有所不同。@andy,这是Tom Th的想法;ie是一个js构造函数,您可以从中实例化多个实例:
function bgScroller(options) {
var settings = {
containerID: '', //id of the scroller's containing element
scrollSpeed: 50, //Speed in milliseconds
step: 1, //How many pixels to move per step
imageHeight: 0, //Background image height
headerHeight: 0, //How tall the header is.
autoStart: true
};
if(options) {
jQuery.extend(settings, options);
}
var current = 0, // The current pixel row
restartPosition = -(settings.imageHeight - settings.headerHeight), //The pixel row where to start a new loop
interval = null,
$container = jQuery('#' + settings.containerID),
that = {};
if(!$container.length || !settings.imageHeight || !settings.headerHeight) {
return false; //nothing will work without these settings so let's not even try
}
function setBg() {
$container.css("background-position", "0 " + current + "px");
}
function scrollBg(){
current -= settings.step;//Go to next pixel row.
//If at the end of the image, then go to the top.
if (current <= restartPosition){
current = 0;
}
setBg();
}
that.reset = function() {
that.stop();
current = 0;
setBg();
}
that.start = function() {
interval = setInterval(scrollBg, settings.scrollSpeed);
};
that.stop = function(){
clearInterval(interval);
};
that.reset();
if(settings.autoStart) {
that.start();
}
return that;
}
我包括了三种公开方法.reset()
、.start()
和.stop()
,它们在实例化后对滚动条提供有限的控制。使用方法如下:
headerScroller.stop()代码>
headerScroller.reset()代码>
headerScroller.start()代码>
- 工作演示
- 依赖项:jQuery 1.0或更高版本
自动调用.reset()
,因此无需事先调用.stop()
李>.stop()
- 没有规定在实例化后更改设置,但只要稍微考虑一下,这是可能的
- jQuery插件与之类似,但开发时间稍长(几乎没有优势)
onDomReady
framework设置在javaScript代码周围建立了一个不可见的包装器。在JSFIDLE之外,您也必须做同样的事情(但不是不可见的),方法是使用$(function(){…})包装代码>,其中,…
是所有其他代码。这样做恐怕仍然不起作用(
function bgScroller(options) {
var settings = {
containerID: '', //id of the scroller's containing element
scrollSpeed: 50, //Speed in milliseconds
step: 1, //How many pixels to move per step
imageHeight: 0, //Background image height
headerHeight: 0, //How tall the header is.
autoStart: true
};
if(options) {
jQuery.extend(settings, options);
}
var current = 0, // The current pixel row
restartPosition = -(settings.imageHeight - settings.headerHeight), //The pixel row where to start a new loop
interval = null,
$container = jQuery('#' + settings.containerID),
that = {};
if(!$container.length || !settings.imageHeight || !settings.headerHeight) {
return false; //nothing will work without these settings so let's not even try
}
function setBg() {
$container.css("background-position", "0 " + current + "px");
}
function scrollBg(){
current -= settings.step;//Go to next pixel row.
//If at the end of the image, then go to the top.
if (current <= restartPosition){
current = 0;
}
setBg();
}
that.reset = function() {
that.stop();
current = 0;
setBg();
}
that.start = function() {
interval = setInterval(scrollBg, settings.scrollSpeed);
};
that.stop = function(){
clearInterval(interval);
};
that.reset();
if(settings.autoStart) {
that.start();
}
return that;
}
var headerScroller = new bgScroller({
containerID: "header",
scrollSpeed: 70, //Speed in milliseconds
imageHeight: 4300, //Background image height
headerHeight: 300, //How tall the header is.
});
var otherScroller = new bgScroller({
containerID: "myOtherDiv",
scrollSpeed: 30, //Speed in milliseconds
imageHeight: 2800, //Background image height
headerHeight: 200, //How tall the header is.
});