0

これを検索してみましたが、直接関連するものを見つけるのに苦労しました。私はjQuery/Javascriptが初めてなので、どんな助けでも大歓迎です! ありがとうございました!

3 つのスライドで機能的に動作するカスタム スライダーがあり、jQuery を使用してスライド間を切り替えています。各スライドの幅は 1040px です。各スライドは相対的に配置され、左側に浮いています。

スライダーが最初にあるときは「右ボタン」を非表示にし(空の領域にスクロールしないようにします)、スライダーが最後にあるときは「左ボタン」を非表示にします(これもそうです)空の領域にスクロールしないでください)。

これを行うためにどのようなロジックを使用できますか?

$(function(){
$(".button-right").click(function() {
    $(".portfolioSection").animate({left: "-=1040" }, "slow");
}); });

$(function(){
$(".button-left").click(function() {
    $(".portfolioSection").animate({left: "+=1040" }, "slow");
}); });

ここにHTMLがあります

<div class="portfolioImg" style="background-image: url(images/featured-flushed.jpg);">
    <div class="portfolioImgOver">
        <div class="button-right">Next</div>
        <div class="button-left">Back</div>
        <div class="portfolioSection">
            <div class="finley"></div>
            <div class="portfolioContent">
                <h2>Flushed</h2><br/><br/>Flushed was a project planned for release on mobile platforms.<br /><br />My responsibilities for Flushed included: establishing a visual direction for the game, creating stylized 3D models, and developing technical game art, including textures, user interfaces and sprite sheets.<br /><br />I also worked with another artist to guide and assist with creating concept art, story mechanics and level designs.<br /><br /><span style="font-size:10px; color:#aaa;">Flushed is owned by Applied Studios, LLC.</span>
            </div>
        </div>

        <div class="portfolioSection">
            <div class="portfolioContent">
                <h2>WHOA! Another div</h2><br/><br/>Here is some crazy cool stuff that I bet you thought you would never see.
            </div>
        </div>

        <div class="portfolioSection">
            <div class="portfolioContent">
                <h2>WHOA! Another div</h2><br/><br/>Here is some crazy cool stuff that I bet you thought you would never see. 
            </div>
        </div>

        <div class="clear"></div>

    </div>
</div>

ここにCSSがあります

<style>.portfolioImg {width:1040px; height:600px; background-color:#efefef; margin-bottom:150px; z-index:1; overflow:hidden;}.portfolioImgOver{width:2080px; height:600px; background: rgba(25,25,25,.94);margin-bottom:150px; display:none; z-index:2; left:0px; position:relative;}.portfolioSection{width:1040px; height:600px; position:relative; float:left;}.portfolioContent{width:300px; color:#dedede; padding:40px; float:left; line-height:22px;}.portfolioContent a{color:#dedede; border-bottom:dotted 1px #888; padding-bottom:1px; text-decoration:none;}.button-right {width:60px; background:#333; color:#fff; padding:10px; position:absolute; z-index:3; right:1040px; top:300px; cursor:pointer; transition: all 0.6s ease 0s; -webkit-transition: all 0.6s ease 0s;}.button-right:hover {background:#777; transition: all 0.6s ease 0s; -webkit-transition: all 0.6s ease 0s;}.button-left {width:60px; background:#333; color:#fff; padding:10px; position:absolute; z-index:3; left:0px; top:300px; cursor:pointer; transition: all 0.6s ease 0s; -webkit-transition: all 0.6s ease 0s;}.button-left:hover {background:#777; transition: all 0.6s ease 0s; -webkit-transition: all 0.6s ease 0s;}</style>

ページへのリンクは次のとおりです。

http://alanvitek.com/dev

4

3 に答える 3

0

スライドに変数を設定してみてください(配列にある場合があります)。次に、それが最初のものかどうかを確認し、左ボタンを非表示にします。最後の場合は、右のボタンを非表示にします。

$('.button-left').hide()
于 2013-05-03T04:07:39.270 に答える
0

試す

jQuery(function($){
    var sec = $('.portfolioSection'), secwidth = sec.width(), unit = 1040;

    $(".button-right").click(function() {
        var left = sec.css('left');
        left = Math.abs(parseInt(left.substring(0, left.length - 2)))
        if(left + unit >= secwidth){
            $(this).hide()
        }

        sec.animate({left: "-=" + unit }, "slow");
        $(".button-left").show();
    });


    $(".button-left").click(function() {
        var left = sec.css('left');
        if(left == '-' + unit + 'px'){
            $(this).hide()
        }
        sec.animate({left: "+=" + unit }, "slow");
        $(".button-right").show();
    });
})

デモ:フィドル

于 2013-05-03T04:16:09.910 に答える