zoukankan      html  css  js  c++  java
  • 极简的js点击组图切换效果

    程序员进行前端开发时,时常要用到点击切换组图的动画效果,网上确实有很多此类插件,但是都很麻烦,乌糟糟无数代码,有那个看的时间,自己都能把功能写完了。在这里我提供一段极简的js点击组图切换效果代码,包含一个html文件,一个css文件,一个js文件,一个jquery.js文件,以及一张图片。

    index.html

    <html>
    <head>
    <title>js点击组图左右滑动</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="css.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="jquery.min.js"></script><!-- 需要一个jquery库 -->
    <script type="text/javascript" src="js.js"></script>
    </head>
    <body>
    <div class="main"><!-- 注:复制代码后,只需随意找一张图片,据下方img标签中的名字,对应修改一下图片名称,即可看到动画效果 -->
    <div class="main_in"><!-- 此标签必须overflow:hidden,才能实现滑动的效果 -->
    <ul id="main_ul"><!-- 此标签必须relative,才允许进行滑动 -->

    <li class="main_in_li" id="main_in_li_id"><img src="chanping1.jpg" width="280" height="500"></li><!-- 根据此id位置,判断ul标签left像素的值 -->
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>
    <li class="main_in_li" id=""><img src="chanping1.jpg" width="280" height="500"></li>

    </ul>
    </div>
    <div class="main_change">
    <div id="prev" onclick="slideprev()"><img src="images/prev.png"></div>
    <div id="next" onclick="slidenext()"><img src="images/next.png"></div>
    </div>
    </div>
    </body>
    </html>

    样式表:

    css.css

    *{margin: 0px; padding: 0px;}
    .main{ 1180px; margin:auto;}
    .main_in{overflow: hidden;}
    .main_in ul{display: block; 5000px; height: 500px; overflow:hidden;position: relative;}
    .main_in_li{display: block; margin-right: 20px; float: left;}
    .main_change{ 1312px; margin: 0 auto; position: relative; top: -250px; left:-66px;}
    #next{ 40px; height: 75px; cursor: pointer; position: absolute; right: 0px; background: #999;}
    #prev{ 40px; height: 75px; cursor: pointer;position: absolute; left: 0px; background: #999;}

    js文件:

    js.js

    //根据class获取元素
    function getByClass(sClass){
    var aResult=[];
    var aEle=document.getElementsByTagName('*');
    var re=new RegExp("\b" + sClass + "\b","g");
    for(var i=0;i<aEle.length;i++){
    if(aEle[i].className.search(re) != -1){
    aResult.push(aEle[i]);
    }
    }
    return aResult;
    };

    //下一个
    function slidenext(){
    var i=0;
    var n;
    for(i;i<getByClass("main_in_li").length;i++){//根据class获取li标签个数
    if(getByClass("main_in_li")[i].id=="main_in_li_id"){//根据id判断li标签在数组中的位置,得到i的值,从而得出ul标签left像素的值
    if(i<getByClass("main_in_li").length-4){//4代表容器中显示的<li>标签的个数,你想在页面上显示几个<li>方块,除了在样式表中需要修改宽度以外,也需要修改此处"4"这个值。
    n=i+1;
    $("#main_ul").animate({left:"-"+300*n},800);
    getByClass("main_in_li")[i].id="";
    }
    }
    }
    getByClass("main_in_li")[n].id="main_in_li_id";
    }

    //上一个,逻辑同上函数
    function slideprev(){
    var i=0;
    var n;
    for(i;i<getByClass("main_in_li").length;i++){
    if(getByClass("main_in_li")[i].id=="main_in_li_id"){
    if(i>0){
    n=i-1;
    $("#main_ul").animate({left:"-"+300*n},800);
    getByClass("main_in_li")[i].id="";
    }
    }
    }
    getByClass("main_in_li")[n].id="main_in_li_id";
    }

    本段js代码基本采用原生的js写成,不过也跟jquery的写法差不多,逻辑是一样的。

    jquery.js文件大家自己找吧,随便那个都可以。图片大家根据目录随便找一张放上去就行。

    这一段代码,其实不单单只是用于图片切换,实质上切换的是<li>标签,你想放文字等待其他东西,只管往<li>标签里面丢就行了。

  • 相关阅读:
    查看hbase中的中文
    查看hbase中的中文
    scala使用hbase新api
    scala使用hbase新api
    IDEA15使用maven编译scala和java
    IDEA15使用maven编译scala和java
    IDEA非sbt下spark开发
    IDEA非sbt下spark开发
    sed初学者实用说明
    sed初学者实用说明
  • 原文地址:https://www.cnblogs.com/chenyoumei/p/7470433.html
Copyright © 2011-2022 走看看