gpt4 book ai didi

javascript - 在 Javascript 幻灯片动画中重新渲染定位在窗口大小调整上的 HTML 元素

转载 作者:行者123 更新时间:2023-11-28 11:13:51 25 4
gpt4 key购买 nike

我有以下网站 wixwebsite.seobrasov.com,其中有一个 Jquery 脚本,可以使页面动画以滑入和滑出。我有一个公式可以根据浏览器窗口计算中心位置:

left: Math.max(0,(($(window).width() - 980)/2))

980 是我的 div 的宽度。

但是,在调整窗口大小时,div 会保留在原来的位置,并且只会在刷新时重新对齐。

我想做的是在窗口调整大小时重新居中事件页面。我已经尝试将该功能包含在准备好窗口大小的文档中,但这不起作用。这是我的脚本代码:

function animate() {
var currentPageI = -1;
var pages = [
$('div.dhome'),
$('div.dabout'),
$('div.dcontact'),
$('div.dportraits'),
$('div.dpregnancy'),
$('div.dbabies-newborn'),
$('div.dbabies-3-6'),
$('div.dbabies-6-24'),
$('div.dkids'),
$('div.dfamily'),
$('div.dall-about-me'),
$('div.dcouples'),
$('div.dpets'),
$('div.dthe-experience'),
$('div.dfinishing-touches'),
$('div.dthank-you'),
];

var viewsWidth = 1300;
var showPage = function(index){

if(index === currentPageI){return;}

var currentPage = pages[currentPageI];
if(currentPage){
currentPage.stop().animate({left: -viewsWidth})
}

var nextPage = pages[index];

nextPage
.stop()
.css({left: viewsWidth + Math.max(0,(($(window).width() - 980)/2))})
.animate({left: Math.max(0,(($(window).width() - 980)/2))})
currentPageI = index;
}

// show default page
showPage(0);

$('a.dhome').click(showPage.bind(null, 0));
$('a.dabout').click(showPage.bind(null, 1));
$('a.dcontact').click(showPage.bind(null, 2));
$('a.dportraits').click(showPage.bind(null, 3));
$('a.dpregnancy').click(showPage.bind(null, 4));
$('a.dbabies-newborn').click(showPage.bind(null, 5));
$('a.dbabies-3-6').click(showPage.bind(null, 6));
$('a.dbabies-6-24').click(showPage.bind(null, 7));
$('a.dkids').click(showPage.bind(null, 8));
$('a.dfamily').click(showPage.bind(null, 9));
$('a.dall-about-me').click(showPage.bind(null, 10));
$('a.dcouples').click(showPage.bind(null, 11));
$('a.dpets').click(showPage.bind(null, 12));
$('a.dthe-experience').click(showPage.bind(null, 13));
$('a.dfinishing-touches').click(showPage.bind(null, 14));
$('.submit').click(showPage.bind(null, 15));
$('a.dthank-you').click(showPage.bind(null, 16));

$('.content-wrap').mouseover(function(){
$('.slider').stop().animate({
right: 0
}, 50000);
}).mouseout(function(){
$('.slider').stop().animate({
right: '-1300px'
}, 50000);
});
};

$(document).ready(function () {
animate();
});
$(window).resize(function(){
animate();
});

我什至尝试在 window.resize 函数内和 currentPage 上添加 css left 样式行,但它仍然无法正常工作。就好像 window.resize 什么也没做。

谢谢!

最佳答案

所以我设法修复了它。在 a.showPage 之后,我包含了一个中心函数: $(window).resize(function(){center()});

运行如下,现在它会根据浏览器调整大小进行调整:

    var center = function(index){
if(index === currentPageI){return;}
var currPage = pages[currentPageI];
if(currPage){
currPage
.stop()
.css({left: viewsWidth + Math.max(0,(($(window).width() - 980)/2))})
.animate({left: Math.max(0,(($(window).width() - 980)/2))})
}
var nextPage2 = pages[index];
nextPage2
.stop()
.css({left: viewsWidth + Math.max(0,(($(window).width() - 980)/2))})
.animate({left: Math.max(0,(($(window).width() - 980)/2))})
currentPageI = index;
};

关于javascript - 在 Javascript 幻灯片动画中重新渲染定位在窗口大小调整上的 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com