gpt4 book ai didi

javascript - jQuery 自制幻灯片代码似乎没有获取图像的当前上下文

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:32 24 4
gpt4 key购买 nike

我知道这将是一个简单的问题,但我一整天都在研究它并努力寻找答案,希望你们这些优秀的人能够提供帮助。

我创建了自己的 javascript 函数,利用 jQuery 创建幻灯片。我知道有很多免费的可供我使用,但我尝试过的少数几个不允许在同一页面上显示多个幻灯片,这让我觉得这应该不会太难。

在页面上我有 2 个包含图像的 div 元素

<div class="slider">
<img src="./images/Hashimadisaster.png" alt="" title="Hashima Island" class="alignnone size-full wp-image-842">
<img src="./images/DSCN3674-1024x767.jpg" alt="" title="Legs glued together" class="alignnone size-large wp-image-834">
<img src="./images/DSCN3672-768x1024.jpg" alt="" title="The front and rear legs together standing on an Eldar Falcon" class="alignnone size-large wp-image-836">
<img src="./images/DSCN3671-1024x768.jpg" alt="" title="Left rear leg glued into position and balanced to stand on its own" class="alignnone size-large wp-image-835">
<img src="./images/conseptiual-drawing-for-titan-base-1024x609.jpg" alt="Conceptual drawing for titan base" title="Conceptual drawing for titan base" class="alignnone size-large wp-image-841">
</div>

和javascript代码

1. function slidermethod(){
2. var HeightOfBox= 400;
3. var timeoutmilliseconds = 3000;
4. if($('.slider').length){
5. $('.slider').each(function(){
6. $(this).css("position","relative");
7. $(this).children('img').css("position","absolute").css("top","0").css("left","0");
8. if($(this).children('img').length){
9. if($(this).children(".currentslide").length == 0){
10. //alert($(this).children("img").length);
11. //alert("1");
12. // this seems to occur every time it is called
13. $(this).children('img:first').addClass(".currentslide");
14. }
15. else{
16. if($(this).children('.currentslide').next().length) {
17. alert("2");
18. var nextchild = $(this).children('.currentslide').next();
19. $(this).children('img').removeClass('.currentslide');
20. $(nextchild).addClass(".currentslide");
21. }else{
22. alert("3");
23. $(this).children('img').removeClass('.currentslide');
24. $(this).children('img:first').addClass(".currentslide");
25. }
26. }
27. }
28. $(this).children('img').css("height",HeightOfBox + "px");
29. $(this).css("height",HeightOfBox + "px");
30. });
31. setTimeout("slidermethod();",timeoutmilliseconds);
32. // every 3 seconds call this method
33. }
34.}
35.slidermethod(); // call the method

代码运行时没有弹出任何错误,并抓取所有图像,调整它们的大小并将它们放在彼此之上。我有一个 css 样式表,其中 .currentslide 为 z-index:2;和所有其他图像为 1。但是当它到达代码底部时,有一个 settimeout() 在 3 秒后再次调用相同的方法,但它似乎总是进入 if 语句

9.    if($(this).children(".currentslide").length == 0){

但如果我对其进行 firebug,我可以看到图像组中的第一张图像具有“currentslide”类,因此它不应该为 0。不太确定为什么它没有按预期工作。

最佳答案

这里有一个错误

.addClass(".currentslide")

应该是

.addClass("currentslide")

在你所有的添加类/删除类中你都犯了同样的错误

以及启动插件的更好路径

$.fn.extend({

slider : function() {
$(this).each(function() {
var $sldr=$(this);

$sldr.css("position","relative")
.find("img").css("position","absolute").css("top","0").css("left","0").end()
.find("img:first-child").addClass("currentslide").end()

.on("nextslide",function() {
var $current = $sldr.find(".currentslide").removeClass("currentslide")
if ($current.next().get(0)) $current.next().addClass("currentslide")
else $sldr.find("img:first-child").addClass("currentslide")

});
setTimeout(function(){$sldr.trigger("nextslide"),3000 });
});
return this;
}
});
$(".slider").slider();

编辑添加我复制了你的代码但是你应该在你的css文件中移动那些css属性,它们不需要在插件中设置,所以它会变成

$sldr.on("nextslide",function() {
var $current = $sldr.find(".currentslide").removeClass("currentslide")
if ($current.next().get(0)) $current.next().addClass("currentslide")
else $sldr.find("img:first-child").addClass("currentslide")

}).find("img:first-child").addClass("currentslide");

关于javascript - jQuery 自制幻灯片代码似乎没有获取图像的当前上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14257886/

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