创建第一个 jQuery 幻灯片插件,从 Javascript 转换

Posted

技术标签:

【中文标题】创建第一个 jQuery 幻灯片插件,从 Javascript 转换【英文标题】:Creating first jQuery slideshow plugin, converting from Javascript 【发布时间】:2016-10-10 12:30:06 【问题描述】:

我在询问一个带有图像、标题和描述 jQuery slide show 的 jQuery 插件。但是找不到这样的。因此尝试仅使用 javascript 构建一个非常小且简单的 [丑陋] 幻灯片。但也有一些缺点,因为在我的脚本中,我必须对图像、标题和描述进行硬编码。所以我想从头开始创建一个 jQuery 插件,它只做与脚本相同的工作,并且还在运行时构建幻灯片。所以这也是一个创建基本幻灯片插件的教程。

我用于简单、丑陋的幻灯片控制器的代码

<html>
<style type="text/css">
td 
 border:1px solid #ccc;
 width: 420px;
 max-width:420px;
 text-overflow:ellipsis; 

span 
word-wrap: break-word;
width: 420px;
 max-width:420px;
 overflow-y:auto; overflow-x:hidden;
 border:1px solid red;

</style>
<body>
<table>
<tr><td><img id="img" name="img" src="" title="Image" /></td> </tr>
<tr><td><span id="title">title</span></td></tr>
<tr><td><span id="desc">description</span></td></tr>
<tr><td><input type="button" value="<" onclick="back()" />
<input type="button" value=">" onclick="next()" /> 
<input type="text" id="idx" value="1" size="2" /> </td></tr>
</table></body>
<script>
var titles = ["zero", "one", "two", "three", "four"];
var descs = ["0 zer0", "1 one ", "2 two ", "3 three", "4 four"];
var img = document.getElementById('img');
var ttl = document.getElementById('title');
var dsc = document.getElementById('desc');
var idx = document.getElementById('idx');
var limit = titles.length-1;

function back()

 if (parseInt(idx.value) > 1)
  idx.value = parseInt(idx.value) - 1;
 img.src = 'images/image' + idx.value + '.jpg'; 
 ttl.innerHTML = titles[idx.value];
 dsc.innerHTML = descs[idx.value];


function next()

 if (parseInt(idx.value) < limit)
    idx.value = parseInt(idx.value) + 1;
 img.src = 'images/image' + idx.value + '.jpg'; 
 ttl.innerHTML = titles[idx.value];
 dsc.innerHTML = descs[idx.value];

</script>
</html>

我希望它被用作

<div id="main">
<img src="...." title="Title of image 1" data-desc="description of #1 image" />  
<img src="...." title="Title of image 2" data-desc="description of #2 image" />
</div>

【问题讨论】:

你需要更好地解释你的问题。 所以你想让别人教你如何重新发明***,这样你就可以制作一个关于重新发明***的教程? @DelightedD0D,你真是太棒了 @Sourav 我猜你正在寻找这样的东西? Simple way of creating jQuery Slider 见***.com/questions/33492797/… 【参考方案1】:

您可以使用 nivo slider 。

您只需在 alt 属性中提及图像的描述,并在 title 属性中提及图像的标题。

只需将插件附加到您的包装元素:

$(window).load(function() 
    $('#main').nivoSlider(); 
); 

编辑1: 创建此类插件的简单方法

jQuery.fn.imgSlider = function( options ) 

    // default settings:
    var defaults = 
        textColor: "#000",
        backgroundColor: "#fff",
        fontSize: "16px",
        getTextFromTitle: true,
        getTextFromAlt: false,
        animateOpacity: true,
        animationDuration: 500,
        clickImgToGoToNext: true,
        clickImgToGoToLast: false,
        nextButtonText: "next",
        previousButtonText: "previous",
        nextButtonTextColor: "red",
        previousButtonTextColor: "red"
    ;

    var settings = $.extend( , defaults, options );

    return this.each(function() 
        // Plugin code would go here...
    );

;

调用插件

$( "div" ). imgSlider();

编辑 2

我创建了一个 jQuery 图像滑块插件。 这里是example 带注释的代码。

【讨论】:

我想知道如何创建这样的插件 有很多方法可以创建这样的插件...检查编辑的答案 @Sourav 哈哈,我敢打赌它会,然后那个教程就会自己写;) @Sourav 添加了一个示例链接,请检查答案。它可能有用。

以上是关于创建第一个 jQuery 幻灯片插件,从 Javascript 转换的主要内容,如果未能解决你的问题,请参考以下文章

JQuery之滑动幻灯片插件Easy Slider初体验

lightslider-支持移动触摸的轻量级jQuery幻灯片插件

创建2个可以相互通信的jquery插件

10款流行的 jQuery 插件

10款流行的 jQuery 插件

多个 jQuery Cycle 寻呼机导航