龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

jquery仿百度图片幻灯浏览功能(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
Code %@ Page Language="C#" AutoEventWireup="true" CodeFile="ImgSlider2.aspx.cs" Inherits="testbaidu_ImgSlider2" % !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh

Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImgSlider2.aspx.cs" Inherits="testbaidu_ImgSlider2" %>

<!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 id="Head1" runat="server">
    <title>模拟百度图片浏览</title>
    <link href="css/Style.css" rel="stylesheet" type="text/css" />

    <script src="../JavaScript/JQuery/Jquery.js" type="text/javascript"></script>

    <script language="javascript" type="text/javascript">

        var showCount = 4//每页显示数
        var count = 9; //总记录数
        var postion = 2; //每次定位到第二个

        var i = 0; //轮转值
        //传入值
        var postindex = 6;
        var loadStart = 0;
        var loadEnd = 0;
        var myTimepre; //向上定时器
        var myTimenext; //向下定时器i

        //第一次计算仅仅是初始化计算
        function setLoadStartAndEnd() {
            //为了便于理解没有进行等式的简化
            //只显示当前页的图片
            if (postindex + 1 - postion > 0 && postindex <= count - showCount) {
                loadStart = postindex - postion + 1;
                loadEnd = postindex - postion + showCount;
            }
            //向下按钮为灰色
            else if (postindex > count - showCount) {
                loadStart = count - showCount;
                loadEnd = count - 1;
            }
            //向上按钮为灰色
            else if (postindex + 1 - postion <= 0) {
                loadStart = 0;
                loadEnd = showCount - 1;
            }
        }


        //计算出数值后开始加载数据
        function loadData() {
            //            alert(loadStart);
            //            alert(loadEnd);
            $("#imgList").html("");
            for (j = loadStart; j <= loadEnd; j++) {
                $('<p class="noselect"><img imgindex="' + j + '"  src="../temp/' + j + '.jpg" /></p>').appendTo($("#imgList"));

            }
            TrggleEvent();
            //alert($("#imgList").html());
        }

        //设置正常状态下向上按钮样式
        function SetSliderPreClass(isclick) {

            if (loadStart > 0) {
                if (!isclick) {
                    $("#slidePre").removeClass();
                    $("#slidePre").addClass("preNormal");
                }
            }
            else {
                $("#slidePre").removeClass();
                $("#slidePre").addClass("preNone");
            }

        }

        //设置正常状态下向下按钮样式
        function SetSlidereNextClass(isclick) {
            if (loadEnd >= count - 1) {
                $("#slideNext").removeClass();
                $("#slideNext").addClass("nextNone");
                $("#ImgOn").removeClass().addClass("lastPage");
            }
            else {
                if (!isclick) {
                    $("#slideNext").removeClass();
                    $("#slideNext").addClass("nextNormal");
                    $("#ImgOn").removeClass().addClass("nextPage");
                }
            }

        }

        //设置鼠标滑动下向上按钮样式
        function SetSliderPreHoverClass() {
            if ($("#slidePre").attr("class") != "preNone") {
                $("#slidePre").removeClass();
                $("#slidePre").addClass("preHover");
            }
        }

        //设置鼠标滑动下向上按钮样式
        function SetSliderNextHoverClass() {
            if ($("#slideNext").attr("class") != "nextNone") {
                $("#slideNext").removeClass();
                $("#slideNext").addClass("nextHover");
            }

        }

        function PreDel() {
            if (loadStart > 0) {
                temp = $("#imgList").html();
                $("#imgList").html("");
                $('<p class="noselect"><img alt="" imgindex="' + (loadStart - 1) + '"  src="../temp/' + (loadStart - 1) + '.jpg" /></p>').appendTo($("#imgList"));
                $(temp).appendTo($("#imgList"));
                temp = "";
                $("#imgList").css("top", "-125");
                postindex--;
                loadStart--;
                loadEnd--;
                $("#imgList").stop(true, false).animate({ top: 0 }, 120);
                window.setTimeout(function() {
                    $("#imgList p").eq(4).remove();
                    SetSliderPreClass(true);
                    SetSlidereNextClass(false);
                    TrggleEvent();
                }, 120);
            }
        }

        function NextDel() {
            if (loadEnd < count - 1) {
                $('<p class="noselect"><img alt="" imgindex="' + (loadEnd + 1) + '" src="../temp/' + (loadEnd + 1) + '.jpg" /></p>').appendTo($("#imgList"));
                postindex++;
                loadStart++;
                loadEnd++;
                $("#imgList").stop(true, false).animate({ top: -125 }, 120);
                window.setTimeout(function() {
                $("#imgList").css("top", "0");
                    $("#imgList p").eq(0).remove();
                    SetSliderPreClass(false);
                    SetSlidereNextClass(true);
                    TrggleEvent();
                }, 150);


            }

        }

        $(function() {
            setLoadStartAndEnd();
            loadData();
            SetPosition();
            //鼠标移动到按钮的事件
            $("#slidePre").hover(function() { SetSliderPreHoverClass(); }, function() { SetSliderPreClass(false); });
            $("#slideNext").hover(function() { SetSliderNextHoverClass(); }, function() { SetSlidereNextClass(false); });
            SetSliderPreClass(false);
            SetSlidereNextClass(false);

            //处理向上按钮事件
            $("#slidePre").click(function() {
                if ($("#slidePre").attr("class") != "preNone") {
                    PreDel();
                }

            });

            //处理向上按钮事件
            $("#slidePre").mousedown(function() {
                myTimepre = window.setInterval(function() {
                    PreDel();
                }, 150);
            });
            //关闭
            $("#slidePre").mouseup(function() {
                window.clearInterval(myTimepre);
            });


            //处理向下按钮事件
            $("#slideNext").click(function() {
                if ($("#slideNext").attr("class") != "nextNone") {
                    NextDel();
                }

            });

            //处理向下按钮事件
            $("#slideNext").mousedown(function() {
                myTimenext = window.setInterval(function() {
                    NextDel();
                }, 150);
            });
            //关闭
            $("#slideNext").mouseup(function() {
                window.clearInterval(myTimenext);
            });

        });


        function SetPosition() {
            //为了便于理解没有进行等式的简化
            //只显示当前页的图片
            if (postindex + 1 - postion > 0 && postindex <= count - showCount) {
                $("#imgList p").eq(1).siblings("p").removeClass().addClass("noselect").end().removeClass().addClass('select');
                $("#ImgOn").attr("src", $("#imgList p").eq(1).find("img").attr("src"));
            }
            //向下按钮为灰色
            else if (postindex > count - showCount) {
                $("#imgList p").eq(postindex - (count - showCount)).siblings("p").removeClass().addClass("noselect").end().removeClass().addClass('select');
                $("#ImgOn").attr("src", $("#imgList p").eq(postindex - (count - showCount)).find("img").attr("src"));
            }
            //向上按钮为灰色
            else if (postindex + 1 - postion <= 0) {
                //alert(postindex);
                $("#imgList p").eq(postindex).siblings("p").removeClass().addClass("noselect").end().removeClass().addClass('select');
                $("#ImgOn").attr("src", $("#imgList p").eq(postindex).find("img").attr("src"));
            }

        }

        function TrggleEvent() {
            //选中图片的处理程序
            $("#imgList p").click(function() {
                //alert($(this).find("img").attr("imgindex"));
                postindex = parseInt($(this).find("img").attr("imgindex"));
                setLoadStartAndEnd();
                loadData();
                SetPosition();
                SetSliderPreClass(false);
                SetSlidereNextClass(false);
            });
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div style="text-align: center">
        <h1>
            百度图片浏览模拟程序</h1>
    </div>
    <div id="imgContainer">
        <div id="detailImg">
            <table id="imgFrom" cellpadding="0" cellspacing="0" style="margin: 0 auto;">
                <tr>
                    <td style="text-align: center">
                        图片名称:
                    </td>
                </tr>
            </table>
            <table id="picWrap">
                <tr>
                    <td id="srcPic" align="center" valign="middle">
                        <img id="ImgOn" src="" width="600px" height="450px" />
                    </td>
                </tr>
            </table>
            <table id="picInfo">
                <tr>
                    <td width="38%" align="left">
                        <span id="imgTitle" style="font-size: 12px"></span>
                    </td>
                    <td align="right">
                        <span class="rate">预览图比例:<span class="fontBar" id="rate"></span></span>
                    </td>
                    <td style="width: 70px" align="left">
                        <a href="javascript:void(0)" class="zoomsrc" id="zoomSrc">查看原图</a>
                    </td>
                </tr>
            </table>
        </div>
        <div id="album">
            <div id="slidePre" class="preNormal">
                &nbsp;
            </div>
            <div id="smallImgs">
                <div id="imgList">
                </div>
            </div>
            <div id="slideNext" class="nextNormal">
                &nbsp;
            </div>
        </div>
    </div>
    </form>
</body>
</html>
以上两种都能实现效果。

转自blog:http://www.cnblogs.com/huhu456


精彩图集

赞助商链接