首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Jquery图片滚动,幻灯片-打包二

2013-04-09 
Jquery图片滚动,幻灯片-------------封装二已经封装好了,主要修改文档加载中传入的类名即可。方便大家使用,

Jquery图片滚动,幻灯片-------------封装二
已经封装好了,主要修改文档加载中传入的类名即可。方便大家使用,以后经常封装一些好的插件给大家用,可以定制一些东西的那种(比如,速度,样式,等等)。


以下第一个是自己封装了,第二个是在csdn一个论坛友的基础上修改封装了。原文(也是我发布的)http://bbs.csdn.net/topics/390414000?page=1#post-394110448

1、图片滚动

<!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 type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
 $(document).ready(function () {
    Xhun(".a");      //----------------------只需要修改   ”.a"  (就是最大的div的class值这里就行---------------------
});

function Xhun(_box) {
    var box_frame = _box + " div ul";
    var box_div = _box + " div";
    $(_box).find("ul").wrap("<div></div>");    //添加一个div,来控制偏移量
    $(box_div).append($(box_frame).clone());   //克隆一个ul并添加到div中,为了实现无缝循环
$(box_div).append($(box_frame).clone());   //克隆一个ul并添加到div中,为了实现无缝循环
    var li_size = $(_box).find("li").size();   //获取li的个数
    var li_width = $(box_frame).children("li").width();  //获取li的宽度
    var box_div_width = $(box_div).width(li_size * li_width * 5);  //设置div的宽度
    $(box_frame).css("float", "left");

    var dd = setInterval(gd, 30);
    function gd() {
        var position = $(_box).scrollLeft();     //scrollLeft()是获取对象的水平偏移量
        $(_box).scrollLeft(position + 1);
        if (position >= $(box_frame).width()) { $(_box).scrollLeft(0); }  //判断位移是否大于ul的总长度
    }
    $(_box).mouseleave(function () {
        dd = setInterval(gd, 30);
    }).mouseenter(function () {
        clearInterval(dd);
    });
}

    </script>
    
    <style type="text/css">
        * { margin: 0; padding: 0; }
        ul { list-style: none; }
        li { float: left; margin-left: 10px; width: 100px; }
        img { width: 100px; height: 100px; }
        .a { width: 400px; margin: 0 auto; overflow: hidden; height: 100px; }
    </style>
</head>
<body>
    <div class="a">


        <ul>
            <li><a href="#">
                <img src="Wife1.jpg" alt="Jquery图片滚动,幻灯片-打包二" title="img" /></a></li>
            <li><a href="#">
                <img src="Wife2.jpg" alt="Jquery图片滚动,幻灯片-打包二" title="img" /></a></li>
            
        </ul>
    </div>
</body>
</html>



2、幻灯片

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>幻灯片切换</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
$(document).ready(function () {
    slide(".frame");      //----------------------只需要修改   ”.frame"  (就是最大的div的class值这里就行---------------------
});

function slide(cls) {
$(cls).find("ul").wrap("<div></div>");
$(cls+" div").attr("class","iframe");
    var li = $(cls).find("li").size();//统计多少张图片
    var li_width = $(cls).find("li").width(); //获取li的宽度
    $(cls + " div").children("ul").width(li_width * li);//设置宽度,使图片排成一排
    var s = "<ul class='button'>";//生成li的按钮
    for (var i = 0; i < li; i++) {
        s += "<li>" + (i + 1) + "</li>";
    }
    s += "</ul>";
    $(s).appendTo($(cls));//生成按钮结束,并添加到最大div里面
    var _i = 0;//当前的编号
    $(cls).find(".button li").each(function (i) {
        //生成按钮点击事件
        $(this).click(function () {
            _i = i;
            $(this).attr("class", "on").siblings().removeAttr("class");//设置class,没必要再多加一个off
            $(cls + " div").animate({ scrollLeft: i * li_width }, "slow");//图片移动
        });
    }).eq(0).click();
    function tt() {//定时器函数
        _i++;
        _i = _i % li;
        $(cls).find(".button li").eq(_i).click();//自动点击切换图片
    }
    var t = setInterval(tt, 3000);//定时器
    $(cls).hover(function () {


        clearInterval(t);//鼠标经过清除定时器,离开时又触发
    }, function () {
        t = setInterval(tt, 3000);
    })
}
    </script>
    <style type="text/css">
        * { margin: 0; padding: 0; }
        li, ul { list-style: none; margin: 0; padding: 0; }
        .frame { width: 280px; height: 280px; position: relative; margin: 0 auto; }  /*这里需要修改最大div的宽度和高度*/
        .iframe { overflow: hidden; width: 280px; height: 280px; }                  /*这里需要修改该div的宽度和高度*/
            .iframe ul li { float: left; width: 280px; }                            /*这里需要修改li的宽度*/
        .button { position: absolute; bottom: 15px; right: 15px; z-index: 300; }
            .button li { float: left; cursor: pointer; width: 17px; height: 17px; line-height: 17px; text-align: center; margin-right: 5px; border-radius: 7px; color: #fff; background: #000; }
            .button .on { color: #000; background: #fff; }
    </style>
</head>
<body>

<!-- 这里要按照这样的格式来写 -->

    <div class="frame">
            <ul>
                <li><a href="#">
                    <img src="Wife1.jpg" width="280" height="280" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
                <li><a href="#">
                    <img src="Wife2.jpg" width="280" height="280" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
                <li><a href="#">
                    <img src="Wife3.jpg" width="280" height="280" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
                <li><a href="#">
                    <img src="Wife4.jpg" width="280" height="280" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
                <li><a href="#">


                    <img src="Wife5.jpg" width="280" height="280" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
            </ul>
    </div>
</body>
</html>


Jquery幻灯片、图片滚动封装
[解决办法]
1、图片滚动的图片问题还是很大,原有一个ul你复制三个出来,这非常不好。第二当多个class=a时都是同步滚动的,也就是说当一个停止全部停止。
[解决办法]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            Xhun(".a");
        });
        function Xhun(_box) {
            $(_box).each(function(){
                var _this=$(this);//储存对象
                var w=_this.width();//统计外框的宽度
                var li=_this.find("li");//查找所有图片对应的li
                var l=li.size();//统计多少张图片 li
                var lw=li.outerHeight(true);
                var i=1;//控制图片滚动的速度
                if(lw*l>w){
                    //判断一下图片总长度是否大于外框,如果不大于就不做动画(也做不了)
                    _this.find("ul").append(li.clone()).width(lw*l*2).hover(function(){i=0},function(){i=1});
                    //吉隆一份li到ul里,并设置ul的长度,让图片排成一排。同时设置鼠标经过停止动画
                    setInterval(function(){
                        var _l=_this.scrollLeft();
                        _l=_l>l*lw?0:_l+i;
                        _this.scrollLeft(_l);
                    },40)


                }
            })
        }
    </script>
    <style type="text/css">
        * { margin: 0; padding: 0; }
        ul,li { list-style: none; margin: 0; padding: 0}
        li { float: left; border: 3px solid #fff; width: 100px;overflow: hidden }
        img { width: 100px; height: 100px; }
        .a { width: 400px; margin: 0 auto; overflow: hidden; height: 100px; }
    </style>
</head>
<body>
<div class="a">
    <ul>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_000.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_001.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_002.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_003.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
    </ul>
</div>

<div class="a">
    <ul>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_000.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_001.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_002.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_003.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_004.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_005.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
        <li><a href="#"><img src="http://cued.xunlei.com/demos/publ/img/P_006.jpg" alt="Jquery图片滚动,幻灯片-打包二" /></a></li>
    </ul>
</div>
</body>
</html>

热点排行