zoukankan      html  css  js  c++  java
  • Js实现类似图片相册左右切换效果

    <!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>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Js版淘宝图片切换,类似相册播放效果</title>
        <style type="text/css">
            *
            
    {
                margin
    : 0;
                padding
    : 0;
                vertical-align
    : top;
            
    }
            img
            
    {
                border
    : 0 none;
            
    }
            .photo
            
    {
                width
    : 736px;
                height
    : 213px;
                overflow
    : hidden;
                position
    : relative;
            
    }
            .photo .step
            
    {
                position
    : absolute;
                bottom
    : 10px;
                right
    : 15px;
                height
    : 23px;
                z-index
    : 2;
                color
    : #fff;
                font-size
    : 14px;
                font-weight
    : bold;
                vertical-align
    : middle;
                cursor
    : pointer;
            
    }
            .photo .step em
            
    {
                margin
    : 0 5px;
            
    }
            .photo ul
            
    {
                float
    : left;
                position
    : absolute;
                top
    : 0;
                left
    : 0;
                width
    : 2208px;
            
    }
            .photo li
            
    {
                float
    : left;
                background
    : #09e;
            
    }
            .photo li img
            
    {
                display
    : block;
                width
    : 736px;
                height
    : 213px;
            
    }
        
    </style>
    </head>
    <body>
        <!--column-->
        <div class="column">
            <div class="photo" id="photo">
                <ul class="clear" id="photo-sub" style=" 2944px">
                    <li><href="#nogo" title="四季如春" target="_blank">
                        <img src="http://www.codefans.net/jscss/demoimg/wall1.jpg" alt="" /></a></li>
                    <li><href="#nogo" title="世界风光" target="_blank">
                        <img src="http://www.codefans.net/jscss/demoimg/wall2.jpg" alt="" /></a></li>
                    <li><href="#nogo" title="黄河之谜" target="_blank">
                        <img src="http://www.codefans.net/jscss/demoimg/wall3.jpg" alt="" /></a></li>
                    <li><href="#nogo" title="仅供测试" target="_blank">
                        <img src="http://www.codefans.net/jscss/demoimg/wall4.jpg" alt="" /></a></li>
                </ul>
                <div class="step" id="step-num">
                    <span>上一页</span><em>1</em>/<em>3</em><span>下一页</span></div>
            </div>
        </div>
        <!--column end-->
        <script type="text/javascript">
    function photoAlbumn(photoObj,btnObj,numObj){
    var moveNum = 1,
    _void=true,
    cloneObj,nums,
    voidClone=false,
    d=document,
    elem = d.getElementById(photoObj),
    btnObj=d.getElementById(btnObj),
    numObj=d.getElementById(numObj);
    if (!elem) return false;
    if (!btnObj) return false;
    var elemObj = elem.getElementsByTagName("li"),
    autoWidth = elemObj[0].offsetWidth,
    btns = btnObj.getElementsByTagName("span"),
    max=elemObj.length;
    elem.style.width = (max+1)*autoWidth + "px";
    var numElement =function(){
    if(numObj){
    nums = numObj.getElementsByTagName("em");
    nums[1].innerHTML = max;
    nums[0].innerHTML = moveNum;
    }
    }
    var moveElement =function(final_x,final_y,interval){
    _void = false;
    var step = function () {
    if (elem.movement) clearTimeout(elem.movement);
    if (!elem.style.left) elem.style.left = "0px";
    if (!elem.style.top) elem.style.top = "0px";
    var xpos = parseInt(elem.style.left);
    var ypos = parseInt(elem.style.top);
    //alert(xpos)
    if (xpos == final_x && ypos == final_y) {
    _void = true;
    if(voidClone){
    elem.style.left = (moveNum > 2)?(-(max-1)*autoWidth +"px"):"0px";
    elem.removeChild(cloneObj);
    voidClone = false;
    }
    return true;
    }
    if (xpos < final_x) {
    var dist = Math.ceil((final_x - xpos)/10);
    xpos = xpos + dist;
    }
    if (xpos > final_x) {
    var dist = Math.ceil((xpos - final_x)/10);
    xpos = xpos - dist;
    }
    if (ypos < final_y) {
    var dist = Math.ceil((final_y - ypos)/10);
    ypos = ypos + dist;
    }
    if (ypos > final_y) {
    var dist = Math.ceil((ypos - final_y)/10);
    ypos = ypos - dist;
    }
    elem.style.left = xpos + "px";
    elem.style.top = ypos + "px";
    elem.movement = setTimeout(function(){step()},interval);
    }
    elem.movement = setTimeout(function(){step()},interval);
    } ;
    var moveAutoShow = function (){
    moveNum++;
    if(moveNum > max){
    cloneObj = elemObj[0].cloneNode(true);
    elem.appendChild(cloneObj);
    voidClone = true;
    }
    moveElement(-autoWidth*(moveNum-1),0,5);
    if(moveNum > max) moveNum=1;
    numElement();
    };
    var prepareSlideshow = function (){
    var moveAuto = setInterval(function(){moveAutoShow()},5000);
    btns[0].onmousedown = function() {
    if(!_void) return false;
    clearInterval(moveAuto);
    moveNum--;
    if(moveNum < 1){
    cloneObj = elemObj[(max-1)].cloneNode(true);
    cloneObj.style.cssText=";position:absolute;left:-" + autoWidth +"px";
    elem.insertBefore(cloneObj,elemObj[0]);
    voidClone = true;
    }
    moveElement(-autoWidth*(moveNum-1),0,5);
    moveAuto = setInterval(function(){moveAutoShow()},5000);
    if(moveNum < 1) moveNum=max;
    numElement();
    }
    btns[1].onmousedown = function() {
    if(!_void) return false;
    clearInterval(moveAuto);
    moveNum++;
    if(moveNum > max){
    cloneObj = elemObj[0].cloneNode(true);
    elem.appendChild(cloneObj);
    voidClone = true;
    }
    moveElement(-autoWidth*(moveNum-1),0,5);
    moveAuto = setInterval(function(){moveAutoShow()},5000);
    if(moveNum > max) moveNum=1;
    numElement();
    }
    };
    numElement();
    prepareSlideshow();
    }
    photoAlbumn("photo-sub","photo","step-num");
        </script>
    </body>
    </html>
  • 相关阅读:
    jdk8u241各系统版本
    jdk8u241各系统版本
    【转】软件测试测试用例设计规范
    虚拟机安装Centos(VirtulBox)
    Java Selenium搭建Web UI自动化环境
    【转】WEB(Javascript)远程调用方案清单
    关于.net页面提交后css失效或部分失效的问题
    常用照片尺寸 照片规格(英寸) (厘米) (像素) 数码相机类型
    【转】jquery的autoComplete 中文介绍
    网页 乱码
  • 原文地址:https://www.cnblogs.com/majunfeng/p/3933840.html
Copyright © 2011-2022 走看看