gpt4 book ai didi

javascript - 如何修复脚本?

转载 作者:行者123 更新时间:2023-11-29 14:42:32 25 4
gpt4 key购买 nike

https://jsfiddle.net/fnethLxm/10/

$(document).ready(function() {
parallaxAuto()
});
function parallaxAuto() {
var viewer = document.querySelector('.viewer.active'),
frame_count = 5,
offset_value = 500;

// init controller
var controller = new ScrollMagic.Controller({
globalSceneOptions: {
triggerHook: 0,
reverse: true
}
});

// build pinned scene
var scene = new ScrollMagic.Scene({
triggerElement: '#sticky',
duration: (frame_count * offset_value) + 'px',
reverse: true
})
.setPin('#sticky')
//.addIndicators()
.addTo(controller);

// build step frame scene
for (var i = 1, l = frame_count; i <= l; i++) {
new ScrollMagic.Scene({
triggerElement: '#sticky',
offset: i * offset_value
})
.setClassToggle(viewer, 'frame' + i)
//.addIndicators()
.addTo(controller);
}

$(".right_arrr").click(function(){
var block = $(this).siblings('.secondSlider');
el = block.find(".active");
elNum = el.attr("data-num");
if(elNum < block.find('.slide').length) {
elNum++;
} else {
elNum=1;
}
hideShow(elNum, block);
alert('slide №' + elNum)
scene = scene.destroy(true);
scene = null;
controller.destroy(true);
controller = null;
parallaxAuto();
});
$(".left_arrr").click(function(){
var block = $(this).siblings('.secondSlider');
el = block.find(".active");
elNum = el.attr("data-num");
if(elNum > 1) {
elNum--;
} else {
elNum=block.find('.slide').length;
}
hideShow(elNum, block);
scene = scene.destroy(true);
scene = null;
controller.destroy(true);
controller = null;
parallaxAuto();
});
function hideShow(num, block) {
block.find("div.active").removeClass("active").animate({ opacity: 0,},300);
block.find("div.slide"+num).addClass("active").animate({ opacity: 1,},300);
}
};

您可以看到在 1 和 2 幻灯片插件上运行良好,但在幻灯片 3 上它不起作用。和错误“无法读取 null 的属性‘destroy’”再坐几天我就听不懂了如何解决这个问题?

最佳答案

我看到 2 个问题:

  • 您在每次右/左单击时将场景和 Controller 设置为 null,并且需要重新初始化它并重新调用 parallaxAuto
  • 每次调用 parallaxAuto 时都会重新绑定(bind)监听器。

我自由地为你重写了它,这样听众只会被绑定(bind)一次:https://jsfiddle.net/j6u6wp7x/ .我只是隔离了您重新初始化 Controller 和场景的部分,以便您可以在单击结束时调用它而无需重新绑定(bind)事件。

关于javascript - 如何修复脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36856887/

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