zoukankan      html  css  js  c++  java
  • CSS+jQuery/JavaScript图片切换播放

    主要用到的是CSS样式控制和简单的Jquery逻辑控制。

    CSS:使得图片播放框的大小适合并固定,同时实现溢出隐藏,这样就可以使尚没应该播放的图片得以隐藏;另外,它还自定义手动切换按钮的效果。

    Jquery:根据逻辑和设置的时间,循环移除/添加控件里面的样式class,实现图片的隐与显。

    总之一句,核心原理是对图片相对位置的控制。

    下面是最基本和简陋Demo。完全可以再拓展,用到函数方法的封装,OOP之类的。

    页面代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script src="../script/jquery-1.7.1.js" type="text/javascript"></script>
    <script src="../script/keyImg.js" type="text/javascript"></script>
    <style type="text/css">
    .img_play
    {


    }
    .img_play_left
    {
    position
    :relative;
    overflow
    :hidden;
    background-color
    :Silver;
    }
    .img_play_left img, .img_play_left
    {
    float
    :left;
    width
    :700px;
    height
    :400px;
    }

    .img_play_left img
    {
    position
    :absolute;
    left
    :700px;
    }
    .img_play_left .img_play_left_current
    {
    left
    :0px;
    }
    .img_play_left_btn_panel
    {
    width
    :100%;
    clear
    :left;
    }
    .btn
    {
    cursor
    :pointer;
    float
    :left;
    margin
    :2px;
    }
    .img_play_left_btn_current
    {
    background-color
    :#fe4020;
    }
    .img_play_left_btn_box
    {
    width
    :20px;
    height
    :20px;
    float
    :left;
    text-align
    :center;
    }
    </style>
    </head>
    <body>
    <div>
    <div class="img_play">
    <div class="img_play_left">
    <img src="../images/1.jpg" alt="img0" id="img0" class="img_play_left_current" />
    <img src="../images/2.jpg" alt="img1" id="img1" />
    <img src="../images/3.jpg" alt="img2" id="img2" />
    </div>

    <div class="img_play_left_btn_panel">
    <div class="btn img_play_left_btn img_play_left_btn_current" id="img_play_left_btn_0">
    <div class="btn img_play_left_btn_box">1</div>
    </div>
    <div class="btn img_play_left_btn" id="img_play_left_btn_1">
    <div class="btn img_play_left_btn_box">2</div>
    </div>
    <div class="btn img_play_left_btn" id="img_play_left_btn_2">
    <div class="btn img_play_left_btn_box">3</div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>



    关键的JS代码来了:

    $(document).ready(function () {
    //start
    var currentImgIndex = 0;
    var nextImgIndex = 1;
    var moveImgAuto = true;

    jQuery('.img_play_left_btn').click(function () {
    var tmp = parseInt(this.id.split('_')[4]);
    if (tmp == currentImgIndex)
    return;

    nextImgIndex = tmp;
    moveImgAuto = false;
    moveImg();
    });

    setInterval(moveImg, 3000);

    function moveImg()
    {
    var $currentImg=jQuery('#img'+currentImgIndex);
    var $nextImg=jQuery('#img'+nextImgIndex);
    var $currentBtn=jQuery('#img_play_left_btn_'+currentImgIndex);
    var $nextBtn=jQuery('#img_play_left_btn_'+nextImgIndex);

    if (nextImgIndex>currentImgIndex || moveImgAuto)
    {
    $nextImg.css('left', 700).animate({left:0}, 500);
    $currentImg.animate({left:-700}, 500);
    $currentBtn.removeClass('img_play_left_btn_current');
    }
    else
    {
    $nextImg.css('left', -700).animate({left:0}, 500);
    $currentImg.animate({left:700}, 500);
    }
    $currentBtn.removeClass('img_play_left_btn_current');
    $nextBtn.addClass('img_play_left_btn_current');

    currentImgIndex=nextImgIndex;
    nextImgIndex=(currentImgIndex+1)%3;
    moveImgAuto=true;
    }


    //over
    });



    效果图很简陋,需要的可以在页面代码的CSS样式中重新自定义。



  • 相关阅读:
    [Database] Oracle 中的where 可以后接group by
    [Hibernate] inner Join和 left Join
    [Hibernate] 分页查询
    [Hibernate] 通过 properties 类和 hql 语句进行动态查询
    [Oracle11g] 通过伪列查询
    [Hibernate] hibernate.cfg.xml 配置文件的一些设置
    [Hibernate] One-To-Many 配置文件和注解的方式以及HQL语句
    Kayleigh O'Connor
    java 对象拷贝工具
    clone的深拷贝 or 浅拷贝
  • 原文地址:https://www.cnblogs.com/oneivan/p/2284785.html
Copyright © 2011-2022 走看看