开源,免费的移动端触摸滑动插件------swiper介绍----淘抢购时间选择加载产品

一 :为什么选择swiper?

  • 免费,开源,稳定,应用广泛。
  • 可单独使用无需jquery,也可以结合jquery一起使用。
  • 简单配置即可实现手机,平板网站的大部分触摸功能。
  • 包括焦点图,tab,触摸滑动导航等。
swiper是纯javascript打造的滑动特效插件,面向手机,平板电脑等移动终端。它能实现触屏焦点图,触屏tab切换,触屏多图切换等常用效果。主要使用于移动端的网站,移动web apps,native apps  和hybrid apps 。主要是为ios而设计的,同时,在安卓,wp8系统也有良好的用户体验,swiper3.0开始将不再全面支持PC端。因此,如果需要在PC上兼容更多的浏览器,可以选择swiper2.x(甚至支持ie7).



二:swiper使用方法(以下出自swiper官网)



1:首先加载插件:需要使用的文件有swiper.mim.js和swiper.mim.css文件。
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
</head>
<body>
    ...
    <script src="path/to/swiper.min.js"></script>
</body>
</html>


如果你的页面加载了jquery.jd或者zepto.js,你可以选择使用更轻便的swiper.jquery.mim.js
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
</head>
<body>
    ...
    <script src="path/to/jquery.js"></script>
    <script src="path/to/swiper.jquery.min.js"></script>
</body>
</html>


2:html内容
<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
    
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
    
    <!-- 如果需要滚动条 -->
    <div class="swiper-scrollbar"></div>
</div>
导航等组件可以放在container之外


3:初始化swiper,最好是紧靠</body>标签。

<script>        
  var mySwiper = new Swiper ('.swiper-container', {
    direction: 'vertical',
    loop: true,
    
    // 如果需要分页器
    pagination: '.swiper-pagination',
    
    // 如果需要前进后退按钮
    nextButton: '.swiper-button-next',
    prevButton: '.swiper-button-prev',
    
    // 如果需要滚动条
    scrollbar: '.swiper-scrollbar',
  })        
  </script>
</body>


如果不能写在html内容的后面,则需要在页面加载完成后再初始化。

<script type="text/javascript">
window.onload = function() {
  ...
}
</script>

或者这样(已经加载jquery和zepeto)

<script type="text/javascript">
$(document).ready(function () {
 ...
})
</script>


三:一些常用的的配置选项



1:一般选项
direction:swiper的滑动方向,可设置水平horizontal或垂直vertical。默认:水平horizontal。

speed:滑动速度,即slider自动滑动开始到结束的时间(单位MS)默认:300。

autoplay:自动切换的时间间隔(单位ms),设定该参数slide不会自动切换。默认:0.

freeMode:默认为false,slide滑动时滑动一格并自动贴合wrapper,设置为true则变为free模式,slide会根据惯性滑动且不会贴合。

scrollbar:出现滚动条。

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>
    <div class="swiper-scrollbar"></div>
</div>
<script type="text/javascript">
var mySwiper = new Swiper('.swiper-container',{
scrollbar:'.swiper-scrollbar',
  }); 
</script>


scrollbarHide:滚动条是否自动隐藏,默认:ture会自动隐藏。

<script type="text/javascript">
var mySwiper2 = new Swiper('.swiper-container',{
scrollbar:'.swiper-scrollbar' ,
scrollbarHide:false,
  }); 
</script>

preloadImages:默认为true,swiper会强制加载所有图片。
lazyLoading:设为true开启图片延迟加载,使preloadImages无效。需要将图片img标签的src改写成data-src,且增加类名swiper-lazy。
背景的延迟加载则增加属性增加属性data-background。
还可以为slide加一个预加载,
 <div class="swiper-lazy-preloader"></div>

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">
            <img data-src="path/to/picture-1.jpg" class="swiper-lazy">
            <div class="swiper-lazy-preloader"></div>
        </div>
        <div class="swiper-slide">
            <img data-src="path/to/picture-2.jpg" class="swiper-lazy">
            <div class="swiper-lazy-preloader"></div>
        </div>
        <div class="swiper-slide">
            <div data-background="path/to/picture-3.jpg" class="swiper-lazy">slide3</div>
        </div>
    </div>
</div> 
<script> 
var mySwiper = new Swiper('.swiper-container',{
lazyLoading : true,
})
</script>


loop:设置为true则开启loop模式,loop模式:会在wrapper前后生成若干个slides让slides看起来是衔接的,用于无限循环切换。默认:false。


2:回调函数:
onInit(swiper):初始化后执行。

onTouchStart(swiper,even):当碰触到slider(不管slider有没有移动)时执行。

onTouchMove(swiper):手指触碰Swiper并滑动(手指)时执行。此时slide不一定会发生移动。

onTouchEnd(swiper, event):当释放slider时执行,释放即执行,不管slide有没有移动。


onSlideChangeStart(swiper):释放滑块时如果slider切换则执行。

onSlideChangeEnd(swiper):slide切换结束时执行。

onImagesReady(swiper):所有内置图像加载完成后执行。

onTransitionStart(swiper):slide过渡开始时触发。

onTransitionEnd(swiper):slide过渡结束时触发。

onTouchMoveOpposite

(swiper, event):当手指触碰swiper并且没有按照direction设定的方向移动时执行。


onSilderMove(

swiper, event

):手指触碰swiper并拖动slide时执行。


onClick(

swiper, event

):当你点击swiper执行。在移动端,click有200到300ms延迟,所以请用onTap来代替onClick作为点击事件。


onTap(

swiper, event

):当你轻触swiper后执行


onReachBeginning(

swiper):swiper切换到初始位置时执行。


onReachEnd(

swiper

):当切换到最后一个slide时执行。


<pre name="code" class="html"><pre name="code" class="html"><script language="javascript"> 
var mySwiper = new Swiper('.swiper-container',{
onInit: function(swiper){
      //Swiper初始化了
    },
onSlideChangeStart: function(swiper){     
 alert('事件触发了;');  
  },
onSlideChangeEnd: function(swiper){    
  alert('事件触发了;');  
  }
})
</script>
 
 
 





四,举个例子---淘宝的抢购页面“淘抢购”






<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
  <title>Swiper demo</title>
  <!-- Link Swiper's CSS -->
  <link rel="stylesheet" href="swiper.min.css" />
  <!-- Demo styles -->
  <style>
  body{margin: 0;padding: 0}
  .timeaxis-current:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 18;
  display: block;
  height: 0;
  width: 0;
  margin: auto;
  border-top: 7px solid #fc353a;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
}
#swiper-container3 {
  width: 100%;
  height: 60px;

  position: relative;

  left: 0;
}#swiper-container3 .swiper-slide {
  height: 30px;
  width: 100px!important;
  font-size: 14px;
  text-align: center;
  color: #000;
}
.timeaxis-current {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 40%;
  right: 40%;
  z-index: 1;
  background: #fc353a;
}
.timeaxis_warp{position: relative;  background: #2d3845;}
.timeaxis-item-inner{line-height: 20px;padding-top: 8px;}
    </style>
 </head>
 <body>
  <!-- Swiper -->
  <div class="timeaxis_warp">
  <div class="timeaxis-current"></div>
  <div class="swiper-container" id="swiper-container3">

   <div class="swiper-wrapper">
    <div class="swiper-slide" data-num="0">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">17:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="1">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">19:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="2">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">21:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="3">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">22:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
       <div class="swiper-slide" data-num="4">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">23:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="5">
        <div class="timeaxis-item-inner">
    <div class="timeaxis-time">00:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="6">
        <div class="timeaxis-item-inner">
    <div class="timeaxis-time">06:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="7">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">08:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="8">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">10:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="9">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">12:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="10">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">13:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="11">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">15:00</div>
  <div class="timeaxis-info">已开抢</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="12">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">17:00</div>
  <div class="timeaxis-info">即将开场</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="13">
        <div class="timeaxis-item-inner">
    <div class="timeaxis-time">19:00</div>
  <div class="timeaxis-info">即将开场</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="14">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">21:00</div>
  <div class="timeaxis-info">即将开场</div>
  </div>
    </div>
        <div class="swiper-slide" data-num="15">
      <div class="timeaxis-item-inner">
    <div class="timeaxis-time">22:00</div>
  <div class="timeaxis-info">即将开场</div>
  </div>
    </div>
       <div class="swiper-slide" data-num="16">
       <div class="timeaxis-item-inner">
    <div class="timeaxis-time">23:00</div>
  <div class="timeaxis-info">即将开场</div>
  </div>
    </div>
</div>
   </div>
  </div>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
  <!-- Swiper JS -->
  <script src="swiper.min.js"></script>
  <!-- Initialize Swiper -->
  <script>
var mySwiper = new Swiper('.swiper-container',{

      slidesPerView : "auto",/*设置slider容器能够同时显示的slides数量(carousel模式)。可以设置为number或者 'auto'则自动根据slides的宽度来设定数量。*/
      freeMode : true, /*自动贴合*/
      freeModeSticky : true,/*自动贴合。*/
      centeredSlides : true,/*设定为true时,活动块会居中,而不是默认状态下的居左。*/
slideToClickedSlide:true,/*设置为true则swiping时点击slide会过渡到这个slide。*/
      centeredSlides : true,/*设定为true时,活动块会居中,而不是默认状态下的居左。*/
      onInit: function(swiper){ /*回调函数,初始化后执行。*/
      $(".swiper-slide-active").css({
         "color": '#fff',
         "font-weight": 'bold'
     });
    },

onTransitionEnd: function(){
   /* alert(     $(".swiper-slide-active").attr("data-num"));  ajax传参数*/
     $(".swiper-slide-active").css({
         "color": '#fff',
         "font-weight": 'bold'
     });
    },
    onTouchMove: function(){
      $(".swiper-slide").not('.swiper-slide-active').css({
         "color": '#000',
         "font-weight": 'normal'
     });
    }

  })
</script>
  <script>
</script>
 </body>
</html>





























效果










三:swiper  animated  使用方法:



swiper  animated是swiper中文网提供的用于在swiper内快速制作css3动画效果的小插件,适用于swiper2.x和swiper3.x.

注意:此插件不适用于loop模式。

1:使用swiper animate需要先加载swiper.animate.mim.js和animate.mim.css。
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="path/to/swiper.min.css">
    <link rel="stylesheet" href="path/to/animate.min.css">
</head>
<body>
    ...
    <script src="path/to/swiper.min.js"></script>
    <script src="path/to/swiper.animate.min.js"></script>
</body>
</html>

2:初始化时隐藏元素并在需要时开始动画。

<script>        
  var mySwiper = new Swiper ('.swiper-container', {
  onInit: function(swiper){ //Swiper2.x的初始化是onFirstInit
    swiperAnimateCache(swiper); //隐藏动画元素 
    swiperAnimate(swiper); //初始化完成开始动画
  }, 
  onSlideChangeEnd: function(swiper){ 
    swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
  } 
  })        
  </script>
</body>

3:在需要运动的元素上面增加类名 ani。
swiper animate需要指定的几个参数。

swiper-animate-effect:切换效果,例如:fadeInUp;

swiper-animate-duration:可选,动画持续时间(单位秒),如:0.5s;

swiper-animate-delay:可选,动画延迟时间(单位秒),如0.3s.

<div class="swiper-slide">
<p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
</div>


四:资源下载




































  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题可能需要更详细的描述和代码示例才能够理解你的问题。不过,根据你的描述,我猜测你可能是想实现一个带有 `u-tabs-swiper` 和 `swiper` 组件的页面,当用户左右滑动页面时,`u-tabs-swiper` 组件会自动切换到对应的选项卡。 如果这是你的需求,你可以尝试在 `swiper` 组件上监听滑动事件,并在事件处理程序中手动调用 `u-tabs-swiper` 组件的 `setActiveTab` 方法来切换选项卡。具体代码示例如下: ```html <template> <view> <!-- u-tabs-swiper 组件 --> <u-tabs-swiper :tabs="tabs" ref="tabsSwiper" @tab-click="handleTabClick" /> <!-- swiper 组件 --> <swiper @change="handleSwiperChange"> <swiper-item v-for="(item, index) in tabs" :key="index"> <!-- 页面内容 --> </swiper-item> </swiper> </view> </template> <script> export default { data() { return { tabs: ['选项卡1', '选项卡2', '选项卡3'], activeTab: 0, }; }, methods: { // u-tabs-swiper 组件的选项卡点击事件处理程序 handleTabClick(tab, index) { this.activeTab = index; // 切换到对应的 swiper 页面 this.$refs.swiper.swiper.slideTo(index); }, // swiper 组件的页面切换事件处理程序 handleSwiperChange() { const activeIndex = this.$refs.swiper.swiper.activeIndex; if (activeIndex !== this.activeTab) { // 切换到对应的选项卡 this.$refs.tabsSwiper.setActiveTab(activeIndex); this.activeTab = activeIndex; } }, }, }; </script> ``` 在上面的代码中,我们在 `swiper` 组件上监听了 `change` 事件,并在事件处理程序中手动调用 `u-tabs-swiper` 组件的 `setActiveTab` 方法来切换选项卡。同时,在 `u-tabs-swiper` 组件上监听了 `tab-click` 事件,当用户点击选项卡时,我们也需要手动调用 `swiper` 组件的 `slideTo` 方法来切换页面。 希望这个代码示例能够解决你的问题。如果还有其他问题,欢迎继续提问!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值