首页>建站相关>Jquery幻灯插件Slidesjs使用详解

Jquery幻灯插件Slidesjs使用详解

曾经粗浅尝试过swiper,依赖复制粘贴实现过简易的幻灯片效果。因为服务器配置不高,加入幻灯效果后页面读取时间直线上升,所以以服务器配置过低为理由劝退了自己,实际上还是对swiper的一大堆设置产生了畏难心理。接近年底,抽时间学习一下wordpress的主题修改,想在自定义主题中加入jquery的支持,过程中发现了这个Slidesjs插件,个头小巧,设置选项也不多。在博客里记录一下学习过程,也方便后期的查找。

极简实现

首先准备一个文件夹,新建一个html文件,再放几张图片进入该文件夹,html文件里定义一个id为“slides”的容易,后续我们定位这个容器来实现幻灯效果。容器名称可自由定义,方便记忆即可。

jquery_plugin_slidesjs_detail_p1

<!DOCTYPE html>
<head>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js" type="application/javascript"></script>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/slidesjs/3.0/jquery.slides.min.js" type="application/javascript"></script>
</head>
<body>

<div id="slides">
<img src="./test1.jpg">
<img src="./test2.jpg">
<img src="./test3.jpg">
</div>

<script>
$(function(){
    $("#slides").slidesjs({
        play:{
            auto:true
        }    
    });
});
</script>

</body>
</html>

html结构比较简单,这里不再赘述了,重点来看一下js部分的语句,要实现一个简易的幻灯片,其实只需要在slidesjs的初始化函数中加如一个play对象,play对象有若干选项,极简的情况下,直接写一个“auto:true”自动播放就可以了。

$("#slides").slidesjs({
        play:{
            auto:true,
        }    
    });

play对象的几个参数

active: true,

生成播放停止按钮,如同前半句的字面意思,这个指令同时生成两个按钮,即播放与停止;

swap: true,

这个选项是配合上面的active的,生成俩按钮后,将该参数设置为false的情况,页面正常现实俩按钮,如果设置为true,则停止时仅显示播放按钮,播放时显示停止按钮,实现切换效果,关键这个swap的默认值就是true,所以学习过程中感觉加了跟没加一样,一度认为这个参数是没有效果的;

effect: "slide",

幻灯切换效果,仅两种效果可以选择,分别是“slide”滑动,以及“fade”淡入淡出,该参数也会出现在分页器以及导航按钮对象中,如果在分页器中设置了不同的效果,那么正常播放可能是采用滑动,而点击分页器时会出现不同的切换的效果,带来更多变的视觉体验;

interval: 3000,

轮播动画的播放间隔,插件的很多数值多已经设置了默认值,比如动画间隔默认就是5000毫秒,如果希望更改播放速度,可以选择使用这个参数;

auto: true,

实现自动轮播的关键参数,默认并不会自动进行播放,所以一般都会设置成true;

一个自定义的范例

<script>
$(function(){
    $("#slides").slidesjs({
        play:{
        active:true,
        auto:true,
        interval: 1000,
        swap:true,
        effect: "fade"
        }    
    });
});
</script>

补充,play部分网上有鼠标悬停的参数设置,但自己尝试后并不生效,看了下源代码,也没有mouse以及hover字样,可能是因为版本迭代的关系有过修改。

导航按钮

导航按钮也可以视为一个对象,也有类似的参数,因为默认是显示导航按钮,所以不准备屏蔽导航按钮的情况下可以不进行设置。但由于插件的导航按钮是文字形式的,所以我们往往会考虑自自定义,以下是一个自定义的范例:

navigation: {
      active: false,
      prev: "slidesjs-previous slidesjs-navigation",
      next: "slidesjs-next slidesjs-navigation",
      effect: "fade"
}

利用“active: false”可以屏蔽掉自带的导航按钮,将自定义按钮的类名设置为如上形式,可以实现自定义的导航按钮。类名也允许自定义,但是必须是:“自定义名称 slidesjs-navigation”这样的形式,附上自定义导航元素的html结构示范:

<div id="slides">
<img src="./test1.jpg">
<img src="./test2.jpg">
<img src="./test3.jpg">
<a class="slidesjs-previous slidesjs-navigation" href="#" title="Previous"><</a>
<a class="slidesjs-next slidesjs-navigation" href="#" title="Next">></a>
</div>

分页器

分页器的用法同导航按钮一致,分页器生成一个包含所有图片连接的列表,在Slidesjs可供自定义的参数并不多,仅能选择是否展示,以及展示动画的效果;

pagination: {
    active: true,
    effect: "slide"
},

分页器无法自定义,很多幻灯插件会用圆点的形式表现,简洁明了。但是Slidesjs分页器内部有数字内容,只能利用css来曲线救国,通过巧妙设置分页器元素背景图片,以及overflow的裁剪,Slidesjs同样可以实现这样的效果。

jquery_plugin_slidesjs_detail_p2

callback函数

通过callback函数,我们可以自定义一些行为,比如当点击分页或导航按钮后,幻灯会停止播放,我们可以通过添加一个callback函数来实现几秒后继续播放;

callback: {
    loaded: function() {},
    start: function() {},
    complete: function() {}
}

利用callback实现继续轮播的代码:

$(function($) {
  $('#slides').slidesjs({
    play: {
      active:true,
      auto: true,
      interval: 2000,
    },
    callback: {
      start: function(number){
        if ( $('#slides').find('.slidesjs-play').is(':visible')) {
          clearTimeout(0);
          st = setTimeout(function() {
             $('#slides').find('.slidesjs-play').click();
          }, 3000);
        }
      }
    }
  });
});

值得注意的是,该段代码依赖播放按钮,所以如果插件设置为禁用播放按钮的时候,这段代码将会失效。

标签: jquery

移动端可扫我直达哦~

推荐阅读

jquery 2024-03-23

利用Jquery实现点击元素后复制被点击元素的标签

在博客上放了一个“Fontawesome4.7.0图标一览”的页面,一直觉得功能太过于单一。自己使用当中,遇到合适的图标,往往还需要去获取它的html标签属性。所以就想给这个页面增加一个点击后复制被点击元素标签的功能。获取标签的相关指...

建站相关 jquery

jquery 2023-12-21

为当前页面生成一个二维码以便于移动端访问

想要在手机上上访问pc端的一个页面,现在很常见的做法是提供一个二维码,让用户通过手机扫码软件识别后用浏览器打开,这样就实现了页面地址数据的传输。某天做完一个页面后,想在手机上看看效果,一边手动输入页面地址,一边就萌生了为站点添加一个二...

建站相关 jquery

jquery 2023-06-09

Jquery幻灯插件Slidesjs图片宽高异常与引用文件顺序

遇到一个困扰多日的问题,在页面中生成了一个幻灯片组件,正常载入的时候是挺正常的,但是偶尔多刷新几次,图片的宽高会出现异常,离谱的是幻灯容器的宽度正常,图片大幅度溢出,而按钮位置无误。以上的bug描述对解决问题毫无帮助,幻灯容器的宽高是...

建站相关 jquery

jquery 2023-05-10

Jquery实现wordpress菜单的鼠标跟随效果

看别人家的博客,菜单栏下有一条装饰线,会根据鼠标悬停的位置来回滑动,且根据滑动距离长短,有明显的速度变化。一直心向往之,正好在学习wordpress的wp_nav_menu函数,顺便尝试一下实现这个效果。看过张戈博客主题的元素,似乎是...

建站相关 jquery

jquery 2023-05-05

Jquery实现wordpress彩色标签云

想在wordpress中实现一组彩色的标签,网上相关的实现教程很多,这里就不赘述了。之所以考虑用Jquery来实现,是基于服务器性能的考虑。因为博主的服务器是2h1g的低配版本,这个配置相对于访问用户的主机配置,无论是移动端还是电脑端...

建站相关 jquery

jquery 2023-05-04

Jquery添加与删除元素的class名

尝试了一下在新的主题中使用jquery,绑定点击动作来添加与删除元素的类名,使用下来感觉确实非常方便。虽然随着各种前段框架的流行,jquery的影响力逐渐减退,但对于博主这种菜鸟来说,还是觉得惊为天人。用jquery添加classna...

建站相关 jquery

jquery 2023-04-15

利用jquery lazyload插件回调函数修改类名

准备在主题中引用jquery,所以lazyload插件也准备用jquery的插件,使用上同lazysizes略有不同,默认并不能在成功加载图片之后修改图片的类名。但是lazyload贴心的提供了回调函数,允许我们自由的修改。引用插件字...

建站相关 jquery

jquery 2022-12-30

Jquery幻灯插件nivo slider使用详解

学习slidesjs幻灯插件的时候翻到的这个,比起slidesjs,nivo slider提供了更多的动画效果,更为丰富的自定义选项。当然,对于一个站点来说,丰富的内容才是关键,过度追求华丽的效果,特别对于带宽较小的服务器来说,无异于...

建站相关 jquery

jquery 2022-12-25

网页引用jQuery UI的方式

jQuery UI简介jQuery UI包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同。所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,...

建站相关 jquery