jQuery 插件 Touchslider触摸、鼠标操作幻灯片交互脚本

幻灯片、走马灯等一直是网页中比较常用的交互效果,在移动平台上也不例外,唯一的区别是操作方式不同,这里介绍一款同时适用于触摸、鼠标操作的幻灯片交互脚本 —— Touchslider

优点:

  1. 兼容性好,适用于主流的桌面及移动(基于Weibkit)浏览器,且同时兼容鼠标和触摸操作
  2. 性能优秀,在 Android 和 iOS 等移动平台上的交互表现非常流畅
  3. 可塑性高,通过插件本身的设置再配合 CSS 可以打造成幻灯片、走马灯等多种交互效果

不足:

  1. 依赖 jQuery,需要额外加载 Javascript 脚本资源
  2. 插件默认会将第二页的内容隐藏,如果想要平铺展示则需要修改 Javascript 脚本

Demo:

插件的官网有 Demo 展示。

如何使用:

1. 加载 Javascript 脚本:

<script src="jquery.min.js"></script>
<script src="jquery.touchslider.min.js"></script>

2. 插入 HTML 代码:

<div class="touchslider">
    <div class="touchslider-viewport" style="width:500px;overflow:hidden">
        <div>
            <div class="touchslider-item"><!-- 这里是显示内容 --></div>
            <div class="touchslider-item"></div>
            ...
        </div>
    </div>

    <div>
        <span class="touchslider-prev">←</span>
        <span class="touchslider-nav-item touchslider-nav-item-current">1</span>
        <span class="touchslider-nav-item">2</span>
        ...
        <span class="touchslider-next">→</span>
    </div>
</div>

3. 配置、调用 touchslider

<script>
jQuery(function($) {
    $(".touchslider").touchSlider({
        container: this,
        duration: 350, // 动画速度
        delay: 3000, // 动画时间间隔
        margin: 5,
        mouseTouch: true,
        namespace: "touchslider",
        next: ".touchslider-next", // next 样式指定
        pagination: ".touchslider-nav-item",
        currentClass: "touchslider-nav-item-current", // current 样式指定
        prev: ".touchslider-prev", // prev 样式指定
        scroller: viewport.children(),
        autoplay: false, // 自动播放
        viewport: ".touchslider-viewport"
    });
});
</script>

手动开始或停止:

$(".touchslider").data("touchslider").stop(); // stop the slider
$(".touchslider").data("touchslider").start(); // start the slider

4. 自定义样式:
样式需要结合具体的情况来定制,可以参照 Demo 中样式来修改。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的jQuery幻灯片代码,可以单独控制时间和鼠标悬停: HTML: ```html <div id="slideshow"> <ul> <li><img src="img1.jpg" alt="Image 1"></li> <li><img src="img2.jpg" alt="Image 2"></li> <li><img src="img3.jpg" alt="Image 3"></li> </ul> </div> ``` CSS: ```css #slideshow { position: relative; height: 300px; overflow: hidden; } #slideshow ul { list-style: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } #slideshow ul li { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out; } #slideshow ul li.active { opacity: 1; } ``` jQuery: ```javascript $(document).ready(function() { // 设置幻灯片的总时间 var total_time = 5000; // 初始化幻灯片 var slideshow = $("#slideshow"); var slides = slideshow.find("ul li"); var current_slide = 0; slides.eq(current_slide).addClass("active"); // 启动幻灯片定时器 var timer = setInterval(function() { // 切换到下一张幻灯片 slides.eq(current_slide).removeClass("active"); current_slide = (current_slide + 1) % slides.length; slides.eq(current_slide).addClass("active"); }, total_time); // 当鼠标悬停在幻灯片上时暂停定时器 slideshow.hover(function() { clearInterval(timer); }, function() { timer = setInterval(function() { slides.eq(current_slide).removeClass("active"); current_slide = (current_slide + 1) % slides.length; slides.eq(current_slide).addClass("active"); }, total_time); }); // 单独控制每张幻灯片的时间 var slide_times = [3000, 4000, 5000]; var slide_timers = []; for (var i = 0; i < slides.length; i++) { (function(index) { slide_timers[index] = setInterval(function() { if (index == current_slide) { slides.eq(current_slide).removeClass("active"); current_slide = (current_slide + 1) % slides.length; slides.eq(current_slide).addClass("active"); } }, slide_times[index]); })(i); } }); ``` 这个代码使用了两个定时器,一个定时器控制整个幻灯片的时间,另一个定时器控制每张幻灯片的时间。同时,当鼠标悬停在幻灯片上时,定时器会被暂停。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值