美文网首页
图片轮播效果(一)

图片轮播效果(一)

作者: TsingXu | 来源:发表于2016-08-04 16:10 被阅读0次

制作时间:14:00 - 16:00

妙味课堂视频链接:图片轮播效果

这个看上去比较复杂,其实只是写css比较麻烦。所以今天只是了解下实现过程做一个简单的效果,明天把css做一下。

html代码:

    <input type="button" value="<---">
    <input type="button" value="--->">
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>

CSS代码

.box1{width:100px; height: 100px;background-color: red; 
      position: absolute; left: 100px; top:100px;}
.box2{width:100px; height: 100px;background-color: yellow; 
      position: absolute; left: 250px; top:50px;}
.box3{width:100px; height: 100px;background-color: blue; 
      position: absolute; left: 400px; top:100px;}
呈现图.png

这个效果最核心的思想是:数组切换

我们可以先模拟一下,假如进行一下向左方向的切换,也就是蓝色往左,红色往后,黄色往右。得到上图的结果。那这三个正方形的位置改变可以通过它们各自的left值改变而实现。

看上图的文字解释,可以将这三个元素的left值存为数组,然后将数组第一个数放到后面,通过这样的数组切换使这三个元素的left值切换,位置也自然切换了。前提是这三个元素的position属性必须是absolute。

接下来的js代码实现借助了jquery库。但并不是必要的!因为之前一段时间学习了jquery,现在要运用实践一下。

JS代码

$(function(){
    var $inputs = $("input");
    var $divs = $("div");
    var arr = [];

    for(var i=0,l=$divs.length;i<l;i++){

        var x = $divs.eq(i).position();
        var left = x.left;
        var top = x.top;
        arr.push([left,top]);

    }

    $inputs.eq(0).click(function(){

        arr.push(arr[0]);
        arr.shift(arr[0]);
        for(var i=0,l=$divs.length;i<l;i++){

            $divs.eq(i).css("left",arr[i][0]);
            $divs.eq(i).css("top",arr[i][1]);

        }
    })

    $inputs.eq(1).click(function(){

        arr.unshift(arr[arr.length-1]);
        arr.pop(arr[arr.length-1]);
        for(var i=0,l=$divs.length;i<l;i++){

            $divs.eq(i).css("left",arr[i][0]);
            $divs.eq(i).css("top",arr[i][1]);

        }
    })
})

下面针对js代码中的一些知识点以及自己犯的错梳理一下:

代码解释.jpg

编号对应上图编号

  1. var divs = $("div") :divs是一个数组对象,通过instanceof来验证。
    var $divs = $("div"):$divs是一个jquery对象。

  2. 获取元素的个数:$divs.length
    而非:$divs.length()
    ( 自己犯错,注意!)

  3. 获取元素的left值:position() 方法 -----> W3CSchool用法Link

  4. 复合数组:因为要改变的不止是left值,还有top值等需要切换的属性。

  5. pop()用法Link
    push()用法Link
    shift()用法Link
    unshift用法Link

  6. 当left值切换后,赋给元素,用到 jquery 的 css() 方法。用法Link
    囧:我在做的过程中,傻乎乎以为还是用position()方法改值。。。

---------结束

不积跬步无以至千里

相关文章

  • RN-第三方之react-native-image-zoom-v

    本文内容多张图片放大后轮播、捏合效果单张图片放大捏合效果 多张图片放大后轮播、捏合效果 单张图片放大捏合效果

  • 面向对象实战---组件

    Tab组件代码 轮播效果 曝光图片加载效果

  • JQ实现左右轮播效果

    这篇文章主要是实现图片左右轮播效果,功能:进入页面自动播放图片,鼠标悬浮,暂停图片轮播,鼠标离开,继续图片轮播,点...

  • 图片轮播效果(一)

    制作时间:14:00 - 16:00 妙味课堂视频链接:图片轮播效果 这个看上去比较复杂,其实只是写css比较麻烦...

  • 轮播图

    今天我们就来做一个轮播图效果,首先我说一下轮播图的原理,轮播图就是一组图片利用视觉差达到图片切换的效果。1、我们使...

  • 27.jquery 实战-轮播

    代码 1.实现如下轮播效果 要求:渐变轮播,图片淡入淡出轮播会自动循环像左向右点击会展示前/后图片底部显示轮播当前...

  • 【axure】axure制作图片轮播效果

    网站或APP中经常看到图片轮播(即自动切换)效果,今天就总结一下如何用axure实现图片轮播以及点击切换效果。先睹...

  • web前端学习基础教程,简单的图片旋转木马自动轮播js代码

    一款简单的图片旋转木马自动轮播js代码,图片叠加轮播切换效果,支持点击左右箭头按钮控制切换。 案例效果图 案例源码...

  • 如何编写一个轮播

    轮播DEMO 效果 编写一个轮播的思路 1.在页面上写一个div,该div用于显示所需轮播的所有图片,先让所有图片...

  • 图片轮播

    四张图片轮播效果 静态图片效果 html部分 css部分 js部分 http://climg.mukewang.c...

网友评论

      本文标题:图片轮播效果(一)

      本文链接:https://www.haomeiwen.com/subject/ihncsttx.html