我正在研究一个简单的滑块,它进展顺利,(仍在学习 jQuery)。目前,我的滑块计算窗口大小并更改我的(全屏)div 宽度,以便内容保留在屏幕中。显然,在您希望内容移动的滑块上,这就是问题所在。
我用它来获取我的窗口宽度,
var lastWidth = $(window).width();
$(window).resize(function(){
if($(window).width()!=lastWidth){
//execute code.
lastWidth = $(window).width();
}
});
所以 lastWidth 变量存储了窗口的宽度。我像这样使用这个变量
这给出并更新了我的滑块容器中所有 div 的宽度(#pageslider)
$("#pageslider div").css({"min-width": (lastWidth)});
这将计算#pageslider 的宽度应该是多少,以便所有 div 都适合。
$("#pageslider").css({"min-width": (lastWidth * 4)});
现在我们解决了这个问题。如果访问者单击 .portfolio 类,#pageslider 会因为左边距而向左移动。给出的值是屏幕的当前宽度。这工作正常。
但是,如果访问者更改了窗口宽度,则该值不会得到更新,因为它是放在 CSS 中的。
$('nav li a.portfolio').click(function(event){
$('#pageslider').animate({
"margin-left":-lastWidth},"slow");
});
因此,如果窗口宽度为 1920 像素并且有人单击 .portfolio 链接,#pageslider 将向左移动 1920。但是当屏幕调整大小时,它会保持在左侧 1920 像素,尽管它应该更改为当前屏幕大小。
这是一个有问题的小jsfiddle:http: //jsfiddle.net/L29pq/