Javascript:一款简易的图片切换插件

最近迷上javascript,每天不写点什么都不舒服哈~

尽管自己能力有限,还是尽自己所能写点东西出来。

实现效果:

效果预览:http://codepen.io/anon/pen/BNjxXj

该插件分为两种模式:循环播放模式,以及,单向播放模式

1# 没有选择播放模式时:

2# 选择循环模式的时候,当图片播放到第一页,或者最后一页的时候,直接跳到最后一页,或者第一页继续播放

3# 选择单向播放模式的时候,当播放到第一页,或者最后一页的时候,给予提醒,图片不能向前,或者向后继续播放

贴代码:

javascript部分:

  var oCircle=document.getElementById(‘circle‘);
    var oSingle=document.getElementById(‘single‘);

    var oImg=document.getElementById(‘img‘);
    var oPrevBtn=document.getElementById(‘prevBtn‘);
    var oNextBtn=document.getElementById(‘nextBtn‘);
    var oPageCount=document.getElementById(‘pageCount‘);
    var oImgDes=document.getElementById(‘imgDes‘);

    var imgCount=[‘0.jpg‘,‘1.jpg‘,‘2.jpg‘,‘3.jpg‘];
    var imgTitle=[‘1tree‘,‘2run‘,‘3hit‘,‘4sun‘];

    var num=0;

    //提取公共执行部分
    function commonFun(){
        oImg.src=‘img/‘+imgCount[num];
        oPageCount.innerHTML=num+1 +‘/‘+imgCount.length;
        oImgDes.innerHTML=imgTitle[num];
    }

    commonFun();

   //当用户没有选择播放模式时候,先提醒其选择播放模式
    if (oSingle.classList.contains(‘btnSelect‘)==false && oCircle.classList.contains(‘btnSelect‘)==false ) {

         oNextBtn.onclick=function(){
            alert("请选择图片播放模式");
         }

         oPrevBtn.onclick=function(){
            alert("请选择播放模式");
         }

    }

    //开启循环播放模式

    oCircle.onclick=function(){

    //添加按钮选中时按钮样式变化
     if (oSingle.classList.contains(‘btnSelect‘)) {
        oSingle.classList.remove(‘btnSelect‘);
     }

     oCircle.classList.add(‘btnSelect‘);

     //循环播放函数主体

     oNextBtn.onclick=function(){
        num++; 

        if (num>imgCount.length-1) {
            num=0;
        }
        commonFun();
    }

    oPrevBtn.onclick=function(){
        num--;
        if (num<0) {
            num=imgCount.length-1;
         }
        commonFun();
    }

    }

    //开启单向播放模式

    oSingle.onclick=function(){

    //添加按钮选中时按钮样式变化

    if (oCircle.classList.contains(‘btnSelect‘)) {
        oCircle.classList.remove(‘btnSelect‘);
     }

     oSingle.classList.add(‘btnSelect‘);

     oNextBtn.onclick=function(){
        num++; 

        if (num>imgCount.length-1) {
            alert("~wow~已是最后一张,请向前播放");
            num=imgCount.length-1;
        }
        commonFun();
    }

     //循环播放函数主体
    oPrevBtn.onclick=function(){
        num--;
        if (num<0) {
            alert("~wow~已是第一张,请向后播放");
            num=0;
         }
        commonFun();
    }

    }

CSS部分:比较简单,图片的自适应显示用的flex

  *{
    	margin: 0;
    	padding: 0;
    }

    a{
        text-decoration: none;
    }

    .container{
        position: relative;
        margin: 0 auto;
    	width: 400px;
    	height: 400px;
        font-size: 13px;
        overflow: hidden;
    	background-color: #333;
        display: -webkit-flex;
        display: flex;
        align-items: center;
    }

    .btnBox{
      width: 400px;
      height: 44px;
      line-height: 44px;
      margin: 25px auto;
      background-color: #eee;
    }

    .btn {
      float: left;
      width: 49.9%;
      height: 100%;
      border: 0;
      outline: 0;
      background-color: #eee;
      border-left: 1px solid rgba(0,0,0,0.15);
    }

    .btn:first-child{
        border-left: 0;
    }

    .btnSelect{
        background-color: #00bb9c;
        color: #fff;
    }

    .singleSelect{

        background-color: #00bb9c;
        color: #fff;
    }

    .imgStyle{
        max-width: 100%;
    }

    .prev,.next{
      position: absolute;
      top:180px;
      width: 40px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      background-color: rgba(0,0,0,0.6);
      font-size: 18px;
      font-family: cursive;
      color: #fff;
    }

    .prev{
        left:0;
    }

    .next{
        right: 0;
    }

    .pageCount,.imgDes{
        position: absolute;
        left:0;
        width: 100%;
        height: 36px;
        line-height: 36px;
        text-align: center;
        background-color: rgba(0,0,0,0.3);
        color: #fff;
    }

    .pageCount{
        top: 0;
    }

    .imgDes{
        bottom: 0;
    }

HTML部分:

<head>
    <meta charset="utf-8">
	<title>图片切换</title>
    <style type="text/css">

    </style>
</head>
<body>

<div class="btnBox">
<button class="btn" id="circle">循环播放</button>
<button class="btn" id="single">单向播放</button>
</div>

<div class="container">

<img src="" class="imgStyle" id="img">
<div class="pageCount" id="pageCount">正在加载页数...</div>
<a class="prev" id="prevBtn" href="javascript:void(0)"><</a>
<a class="next" id="nextBtn" href="javascript:void(0)">></a>
<div class="imgDes" id="imgDes">正在加载图片描述...</div>

</div>

</body>

  

时间: 2024-08-01 20:38:09

Javascript:一款简易的图片切换插件的相关文章

推荐几款jquery图片切换插件

一.前言 毕业季到了,大家都在匆匆忙忙的记录大学里最美好的时光,照片中各种花式.各种姿势都涌现出来了.这么多的照片怎么展示出来给自己的好友看呢?有人选择做成视频,有人选择ps之后做成图片集,而我选择利用静态网页的形式进行展示. 二.用到的四个免费的jquery插件 注:都是网上免费的,自己测试过了,挺好用的,顺便改了改. 1.3D Change 下载地址:https://github.com/hjzgg/picture_show/tree/master/3D_change 效果展示 2.Samp

jQuery图片切换插件jquery.cycle.js

Cycle是一个很棒的jQuery图片切换插件,提供了很好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <head> <script type="text/javascript" src="js/jquery-1.8.0.min.js"></script> <script type="text/javascript" src

图片切换插件

/** * 图片切换插件 * Dependence jquery-1.7.2.min.js **/ (function ($) { //调用方式 $('#silder').imgSilder({s_width:564, s_height:293, is_showTit:true, s_times:3000,css_link:'css/style.css'}); 容器必须加入 id silder_list or class silder_list /*参考结构 <div class="sil

jquery.cycle.js图片切换插件参数详解

jquery.cycle.js是jquery的一个插件,主要用来实现千奇百怪的图片切换效果---当然,不是图片也能切换,只是它经常被用来做图片切换而已:这个插件总共有27种效果,是非常好的插件,用到手机版开发是很好的插件来的: 当然jquery.cycle.js的强大远不止于此,下面列举一些它的基本参数: fx:'fade'>值:字符串,作用:选择特效.切换效果是它的重头戏,我统计过,jquery.cycle.js支持27种切换效果,我一一进行了测试,列举在jquery.cycle.js切换特效

18款 非常实用 jquery幻灯片图片切换

1.jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动 jquery图片特效制作仿腾讯QQ商城首页banner焦点图片轮播切换效果,带索引按钮控制和左右按钮控制图片切换. 查看演示>>          下载地址 2.jquery图片切换插件制作图片层叠缩放展示效果 jquery图片插件制作图片等比列缩放层叠样式,图片叠加展示.点击层叠最上层的图片依次点击缩放图片层叠缩放切换. 查看演示>> 下载地址 3.jquery图像幻灯片制作大小图片切换滚动展示 jquery图像幻

基于HTML5 SVG和CSS3炫酷蹦床式图片切换特效

今天给大家分享一款效果非常炫酷的HTML5 SVG和CSS3蹦床式图片切换特效插件.该图片切换插件在进行图片切换时,整个屏幕就像一张大蹦床一样,将图片弹射出去,切换到另一张图片,效果非常有创意.效果图如下: 在线预览   源码下载 HTML结构 该图片切换特效的HTML结构中,第一个元素是SVG图形,当切换图片时,它将从一个规则的矩形变为一个被压缩的矩形. <div class="stack"> <ul id="elasticstack" clas

分享8款最新HTML5/CSS3功能插件及源码下载

1.HTML5/CSS3鬼脸表情下拉菜单 超级可爱 这款HTML5/CSS3鬼脸表情下拉菜单真的很特别,虽然菜单的实现并没有利用复杂的HTML5/CSS3技术,但是创意的确不错. 在线演示 源码下载 2.CSS3带Tooltip的按钮 按钮绿色清新 该按钮带有Tooltip功能,鼠标滑过按钮时即可显示Tooltip,另外按钮还有一个漂亮的图标.这款CSS3按钮整体是绿色清新风格,非常不错. 在线演示 源码下载 3.HTML5/CSS3制作Safari Logo 指针动画很炫 这款Logo动画,它

10款很好用的 jQuery 图片滚动插件

jQuery 作为最流行的 JavaScript 框架,使用简单灵活,同时还有许多优秀的插件可供使用.其中最令人印象深刻的应用之一就是各种很酷的图片效果,它可以让的网站更具吸引力.这里收集了10款很好用的 jQuery 图片滚动插件分享给大家. 1.Nivo Slider 首先推荐的这款插件号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次! 在线演示 源码下载 2.Slides Slides 是一款精巧的

一款基于jQuery可放大预览的图片滑块插件

今天给大家分享一款基于jQuery可放大预览的图片滑块插件.这款jQuery焦点图插件的特点是可以横向左右滑动图片,并且点击图片可以进行放大预览,唯一的缺陷是这款焦点图并不能循环切换,如果你有较好的JavaScript功底,可以自己修改代码来实现这一功能.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="slider"> <div class="spic"> <img src="images