Swiper实现全屏视觉差轮播

Posted qianqian-it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swiper实现全屏视觉差轮播相关的知识,希望对你有一定的参考价值。

Swiper作为当代流行的js框架,非常受到青睐,这里演示swiper在pc端全屏视觉轮播的效果,这也是pc端常用的一种特性

一  以教师节为主题的一个全屏轮播

  1 首先加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件以及jquery-1.11.3.min.js官网都有(可以下载完整的压缩文件)

 <link rel="stylesheet" href="css/swiper.min.css" >
      <script src="js/jquery-1.11.3.min.js"></script>
     <script src="js/swiper.min.js"></script>

        2  .html内容

    //四张图片轮播 这里说一下全屏轮播的思想,首先,全屏轮播有两种方式来显示图片

     1  使用img标签:使用img属性如果想让图片能够全屏展示,同时图片内容居中,我们需要设置width:100%,但是这样设置会使得你的图片等比的压缩,有时候达不到我们想要的效果,

         你也可以采取定位来放置图片,但是在不同浏览器之间有些许瑕疵,(很多网站都是用过img属性来设置,也可以采纳)

    2  使用background属性:这是我常用的一个方法,分享给大家,我们将要展示的图片设置为背景图片,(很多网站的图片都是链接,因此放在a中)设置属性a{display:block;height:‘图片高度’)

        同时在标签中加入 style=" background: url(xxx) no-repeat center "样式,就能使得图片满屏并且内容居中,可以通过下面代码看一下

 

    <div class="banner">
       <div class="swiper-container myswiper">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <a href="#" style=" background: url(image/2.jpg) no-repeat center ">          
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">      
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/2.jpg) no-repeat center ">
                    <a href="#">
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">
                    </a>
                </div>
                

      </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
    
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev  mySwiperBut"></div>
    <div class="swiper-button-next  mySwiperBut"></div>
    </div>//可以修改一下按钮样式,这里不细说,见上一节

4.初始化Swiper

   <script>        
  var mySwiper = new Swiper (‘.swiper-container‘, {
    // direction: ‘vertical‘,//默认水平
    loop: true,
    autoplay:true,
    effect:"fade",//淡入淡出效果
    parallax:"true",//产生视觉差
    
    // 如果需要分页器
    pagination: {
      el: ‘.swiper-pagination‘,
      clickable: true,
      clickableClass : ‘my-pagination-clickable‘,
    
    },
    
    // 如果需要前进后退按钮
    navigation: {
      nextEl: ‘.swiper-button-next‘,
      prevEl: ‘.swiper-button-prev‘,
    },
  
  })        
  </script>

二 视觉差效果(其实这个很简单,在API文档中介绍了)

 parallax

          设置为true开启视差效果。

效果可以应用于container或slide的子元素。当应用于container的子元素(常用于视差背景图),每次切换时视差效果仅有设定值的slide个数-1分之1

1.视差位移变化
在所需要的元素上增加data-swiper-parallax属性(与Swiper切换方向相同)或data-swiper-parallax-x (x方向) data-swiper-parallax-y(y方向)

data-swiper-parallax接受两种类型的参数。
          number(单位:px),如-300,从右边300px进入左边出去。
          percentage(百分比),移动距离=该元素宽度 * percentage。

2.视差透明度变化
在所需要的元素上增加data-swiper-parallax-opacity属性。可选值0-1,如0.5,从半透明进入半透明出去

3.视差缩放变化
在所需要的元素上增加data-swiper-parallax-scale属性。可选值如0.5,从一半大小进入一半大小出去

还可通过data-swiper-parallax-duration设定视差动画持续时间(ms)。默认值是Swiper的speed,与切换时间同步。

*设定透明度或缩放必须同时设定位移,否则无效(4.0.5) <div data-swiper-parallax="0" data-swiper-parallax-opacity="0.5" >透明度变化</div>

    视觉差演示代码(直接在上面全屏轮播进行的修改)//script中将视觉差开启设置为true,同时在内容中加入data-swiper-parallax="xxx"(xxx一般为负值)

 

    <div class="banner">
       <div class="swiper-container myswiper">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <a href="#" style=" background: url(image/2.jpg) no-repeat center ">
                        <div class="text" data-swiper-parallax="-100">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">
                        <div class="text" data-swiper-parallax="-200">//值为-200
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> //加入内容体现视觉差
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/2.jpg) no-repeat center ">
                    <a href="#">
                       <div class="text" data-swiper-parallax="-300">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">
                     <div class="text" data-swiper-parallax="-400">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
      </div>

 

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>实现全屏的视觉差效果轮播</title>
      <link rel="stylesheet" href="css/swiper.min.css" >
      <script src="js/jquery-1.11.3.min.js"></script>
     <script src="js/swiper.min.js"></script>
     <style>
         *{
             margin:0px;
             padding:0px;
         }
         .banner{
             margin-top:40px;
         }
      .swiper-slide a{
          display: block;
          height: 500px;
          overflow: hidden;
          text-decoration: none;
      }   
      .text{
          color: #000;
          font-size: 20px;
          position: absolute;
          left: 10%;
          top:50%;

      }
     </style>
</head>
<body>
    <div class="banner">
       <div class="swiper-container myswiper">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <a href="#" style=" background: url(image/2.jpg) no-repeat center ">
                        <div class="text" data-swiper-parallax="-100">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">
                        <div class="text" data-swiper-parallax="-200">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/2.jpg) no-repeat center ">
                    <a href="#">
                       <div class="text" data-swiper-parallax="-300">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                <div class="swiper-slide"  style=" background: url(image/4.jpg) no-repeat center ">
                    <a href="#">
                     <div class="text" data-swiper-parallax="-400">
                              We are like lambs in a field, disporting themselves under the eye of the butcher,<br/>
                           who chooses out first one and then another for his prey. So it is that in our good <br/>
                           days we are all unconscious of the evil Fate may have presently in store for us — sickness, poverty,<br/>
                           mutilation, loss of sight or reason
                        </div> 
                    </a>
                </div>
                

      </div>
    <!-- 如果需要分页器 -->
    <div class="swiper-pagination"></div>
    
    <!-- 如果需要导航按钮 -->
    <div class="swiper-button-prev  mySwiperBut"></div>
    <div class="swiper-button-next  mySwiperBut"></div>
    </div>
    <script>        
  var mySwiper = new Swiper (‘.swiper-container‘, {
    // direction: ‘vertical‘,
    loop: true,
    autoplay:true,
    effect:"fade",
    parallax:"true",
    
    // 如果需要分页器
    pagination: {
      el: ‘.swiper-pagination‘,
      clickable: true,
      clickableClass : ‘my-pagination-clickable‘,
    
    },
    
    // 如果需要前进后退按钮
    navigation: {
      nextEl: ‘.swiper-button-next‘,
      prevEl: ‘.swiper-button-prev‘,
    },
  
  })        
  </script>
</body>
</html>
//图片地址http://show.huitu.com/pic/20180904/r38905.jpg

 

 

 



















以上是关于Swiper实现全屏视觉差轮播的主要内容,如果未能解决你的问题,请参考以下文章

Vue与swiper想结合封装全屏轮播插件

swiper做轮播图

vue全屏轮播

react-native-swiper

HarmonyOS鸿蒙学习笔记Swiper实现轮播滚动效果

HarmonyOS鸿蒙学习笔记Swiper实现轮播滚动效果