javascript – jQuery自制幻灯片代码似乎没有获取图像的当前上下文
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery自制幻灯片代码似乎没有获取图像的当前上下文,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4238字,纯文字阅读大概需要7分钟。
内容图文
![javascript – jQuery自制幻灯片代码似乎没有获取图像的当前上下文](/upload/InfoBanner/zyjiaocheng/816/9dd8a31716cb4b90a37351e76938b8db.jpg)
我知道这将是一个简单的问题,但我一整天都在看着它,并努力寻找答案,所以希望你们能有所帮助.
我创建了自己的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){
但是,如果我发现它,我可以看到图像组中的第一个图像具有“currentlide”类,所以这不应该是0.不确定为什么这不能按预期工作.
解决方法:
这里有一个错误
.addClass(".currentslide")
应该
.addClass("currentslide")
在你所有的addclass / removeclass中,你犯了同样的错误
以及启动插件的更好途径
$.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自制幻灯片代码似乎没有获取图像的当前上下文全部内容,希望文章能够帮你解决javascript – jQuery自制幻灯片代码似乎没有获取图像的当前上下文所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。