0

プロジェクトのスライド リストを書きました。ここにあります: http://study-wise.appspot.com/test/left_right.html

これを行うためのより良い方法はありますか?jquery-uiに組み込まれているようなものです。ありがとうございます。学習目的で疑問に思っています。また、ない場合は、使用できるようにどこかに投稿したいと思います。

<html>
    <head>
        <title>
            test
        </title>

CSS

        <style type="text/css">
            *{
                margin: 0px;
                padding: 0px;
            }
            a.move {
                z-index: 2;
                position: absolute;
                height: 28px;
                width: 28px;
                display: inline-block;
                border: 1px #aaa solid;
                border-radius: 5px;
                background-color: white;
                text-align: center;
                text-decoration:  none;
                color: black;
            }
            a.move:hover {
                background-color: #aaa;
            }
            a.move.left {
                top: 0;
                left: 0;
            }
            a.move.right {
                top: 0;
                left: 370px;
            }
            ul#shifting li {
                display: inline-block;
                height: 30px;
                width: 335px;
                border-right: 1px #aaa solid;
                margin-left: 35px;
            }

            div.slidingList_outer{
                z-index: 1;
                position: relative;
                width: 741px;
                height: 30px;
                border: 4px #24a solid;
                overflow: hidden;
            }
            div.slidingList_inner{
                position: relative;
                width: 1200px;
                height: 30px;
            }

        </style>

Jクエリ

        <script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            var current = 0;
            var total = 0;
            var wait = 0;
            var width = 335;
            var margin = 35;
            function next(){
                if(wait || current == total - 1) return;
                wait=1;
                $('li:eq(' + (current + 2) + ')').show();
                $('li:eq(' + (current + 0) + ')').animate({
                    marginLeft: "-" + (width) + "px"
                  }, 1000, function(){update(+1);});
            }
            function prev(){
                if(wait || current == 0) return;
                wait=1;
                $('li:eq(' + (current - 1) + ')').css({marginLeft: "-" + (width) + "px"}).show().animate({
                    marginLeft: "" + (margin) + "px"
                  }, 1000, function(){update(-1);});
            }
            function update(delta){
                if(delta == 1){
                    $('li:eq(' + (current + 0) + ')').hide();
                    $('li:eq(' + (current + 0) + ')').css({marginLeft: "" + (margin) + "px"});
                } else if(delta == -1){
                    $('li:eq(' + (current + 1) + ')').hide();
                }
                current+=delta;
                wait=0;
                $('p').text('current: ' + current);
            }
            function init(){
                total = $('li').size();
                $('ul').append('<li>End of lecture</li>');
                $('li').hide();
                $('li:eq(' + (current + 0) + ')').show();
                $('li:eq(' + (current + 1) + ')').show();
            }
            $(function(){
                init();
                /*bind events*/
                $('a.move.left').click(function(e){
                    e.preventDefault();
                    prev();
                });
                $('a.move.right').click(function(e){

                    e.preventDefault();
                    next();
                });
            });
        </script>
    </head>

HTML

    <body>
        <p> ... </p>
        <div class="slidingList_outer">
            <div class="slidingList_inner">
                <a class="move left" href="a">&lt;</a><a class="move right" href="b">&gt;</a>
                <ul id="shifting">
                    <li>123</li><!--
                    --><li>456</li><!--
                    --><li>789</li><!--
                    --><li>abc</li><!--

                    --><li>edf</li><!--
                    --><li>ghj</li><!--
                    --><li>!@#</li><!--
                    --><li>$%^</li><!--
                    --><li>ABC</li>
                </ul>
            </div>
        </div>
    </body>
</html>
4

1 に答える 1

1

あなたが望むことをするなら、 jQuery Tools Scrollableをお勧めします。

于 2012-06-20T08:11:40.043 に答える