1

anyslider と colorbox を使用して、電子書籍のような横方向にスライドするページを作成しています。ナビゲーションを構築するために、anyslider に「nav(to)」関数を実装しました。これは、Firefox と Safari ではうまく機能しますが、IE8 では機能しません。イライラするのは、スライダー部分がまだ機能することです-左右に移動し、「ページ」(実際にはリスト項目) に直接ジャンプするナビゲーションでは機能しません。IE8 によって拒否された構文のいくつかの厄介な部分が疑われますが、私の命を救うためにそれを見つけることができません。

完全な開示のために、このページのコードは、InDesign ドキュメントを HTML に変換する in5 を使用して最初に作成されました。少しずさんで、私が望んでいたすべてのことを行っているわけではないので、約 2 週間にわたって手作業でコーディングして微調整を行ってきました (そして、2 週間かかったという事実は、何が問題なのかを理解できない理由を説明するはずです.それが明確でない場合、私は完全な新人です)。

私は、stackoverflow、github、および csstricks など、あらゆる回答を検索しました。私は特定の問題を抱えている人を見つけることができません.同様の問題に対して提供された答えは、私がすでに行ったか、喜んで実装したものでした. IE8 に対応するようにメタ タグを変更しました。外部の.jsファイルでナビゲーションが定義されている場所を正確に見つけることができるように、JavaScriptファイルを美しくしました(見つけましたが、見ているものを完全に理解するにはJavaScriptプログラマーではありません)。

コードは次のとおりです。

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>BestBrands2013</title>
<meta http-equiv="X-UA-Compatible" content="IE=8">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="assets/js/jquery.min.js"><\/script>')</script>
<script type="text/javascript" src="assets/js/jquery.touchSwipe.min.js"></script>
<script type="text/javascript" src="assets/js/jquery.anythingslider.min.js"></script>
<script type="text/javascript" src="assets/js/jquery.colorbox-min.js"></script>
<link rel="stylesheet" href="assets/css/theme-minimalist-square.css">
<link rel="stylesheet" href="assets/css/pages.css">


<script type="text/javascript" >
var touchEnabled = 'ontouchstart' in document.documentElement;
var useSwipe = 1;
var pageMode = 'h';
var nav;

$(function(){

    if($.colorbox) {
        $('.lightbox').colorbox({iframe:true, width:"80%", height:"80%"});
        $('.thumb').colorbox({maxWidth:"85%", maxHeight:"85%"});
    }
    $('img').bind('dragstart', function(event) { event.preventDefault(); });
    $('.pageItem').each(function(){
        if($(this).is('[onclick]')){
            if(touchEnabled) {
                //this.setAttribute('touchstart', this.getAttribute('onclick'));
                //this.removeAttribute('onclick');
            } else this.style.cursor = 'pointer';
        }
    });
    if($.hasOwnProperty('scrollTo')){
    nav = { numPages:$('.pages .page').length,
        back:function(ref){var targ=$(ref).parent('.page').prev()[0]; if(targ!=undefined); $.scrollTo(targ, 500);},
        next:function(ref){var targ=$(ref).parent('.page').next()[0]; if(targ!=undefined); $.scrollTo(targ, 500);},
        first:function(){$.scrollTo($('.page')[0], 500)},
        last:function(){$.scrollTo($('.page')[nav.numPages-1], 500)},
        to:function(n){$.scrollTo($('.page')[n-1], 500)} };
    }
    var playvid = function(slider) {
var vid = slider.$currentPage.find('video');
if (vid.length) {
    // autoplay
    vid[0].play();
}
};
            var sliderSettings = {
        mode: pageMode,
        theme: 'minimalist-square',
        buildArrows: (!touchEnabled && 1),
        buildNavigation: false,
        buildStartStop: false,
        hashTags: false,
        infiniteSlides: false,
        stopAtEnd: true,
        onInitialized: function(e, slider) {
            playvid(slider);
            nav = {
                numPages:slider.pages,
                current:slider.currentPage,
                next:function(){slider.goForward();},
                back:function(){slider.goBack();},
                first:function(){this.to(1);},
                last:function(){this.to(this.numPages)},
                to:function(n){slider.gotoPage(n);}
            };
            if(useSwipe) {
            var container = $('#container');
            var vertMode = (pageMode.substr(0,1) == "v");
            container.swipe({
                swipe:function(event, direction, distance, duration, fingerCount) {
                    switch(direction) {
                        case "left":
                            if(!vertMode) nav.next();
                            break;
                        case "right":
                            if(!vertMode) nav.back();
                            break;
                        case "up":
                            if(vertMode) nav.next();
                            break;
                        case "down":
                            if(vertMode) nav.back();
                            break;      
                    }
                }
            });
            }
        },

    }

    $('#slider').anythingSlider(sliderSettings);
});
</script>

</head>

<body>    
<div id="container">
<ul class="pages" id="slider">

<li class="page">
  <img class="pageItem" src="assets/images/item_16.png" alt="page item"/>
  <a href = "javascript:void(0)" onclick = "document.getElementById('popclinique').style.display='block';document.getElementById('fade').style.display='block'">
    <img class="pageItem" src="assets/images/item_17.png" style="left:165px; top:116px; " alt="page item"/>
  </a>
  <a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8520&cm_sp=ebook-_-30513-_-bb_p2_clinique_sun" target="_blank"><img class="pageItem" src="assets/images/item_18.png" style="left:85px; top:381px; " alt="Clinique Sun"/></a>
  <a href = "javascript:void(0)" onclick = "document.getElementById('popmilstar').style.display='block';document.getElementById('fade').style.display='block'">
  <img class="pageItem" src="assets/images/item_19.png" style="left:38px; top:567px; " alt="page item"/>
</a>
<a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8517&cm_sp=ebook-_-30513-_-bb_p2_clinique_fragrance" target="_blank"><img class="pageItem" src="assets/images/item_20.png" style="left:271px; top:210px; " alt="Clinique Fragrance"/></a>
<a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8523&cm_sp=ebook-_-30513-_-bb_p2_clinique_mens" target="_blank"><img class="pageItem" src="assets/images/item_21.png" style="left:436px; top:207px; " alt="Clinique Mens"/></a>
<a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8501&cm_sp=ebook-_-30513-_-bb_p2_clinique_3step" target="_blank"><img class="pageItem" src="assets/images/item_22.png" style="left:591px; top:318px; " alt="Clinique 3 Step"/></a>
<a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8512&cm_sp=ebook-_-30513-_-bb_p2_clinique_makeup" target="_blank"><img class="pageItem" src="assets/images/item_23.png" style="left:864px; top:350px; " alt="Clinique Makeup"/></a>
<a href="https://shop.aafes.com/shop/default.aspx?loc=department.aspx%7Edept_id%3D8505&cm_sp=ebook-_-30513-_-bb_p2_clinique_skincare" target="_blank"><img class="pageItem" src="assets/images/item_24.png" style="left:696px; top:47px; " alt="Clinique Skin Care"/></a>
<button class="pageItem" style="left:217px; top:641px; " alt="clinique 11" id="item26" onclick="nav.to(2);">&nbsp;</button>
 <button class="pageItem" style="left:271px; top:641px; " alt="nikebutton 11" id="item27" onclick="nav.to(3);">&nbsp;</button>
 <button class="pageItem" style="left:325px; top:641px; " alt="underarmourbuttpn 11" id="item28" onclick="nav.to(4);">&nbsp;</button>
 <button class="pageItem" style="left:379px; top:641px; " alt="coachbutton 11" id="item29" onclick="nav.to(5);">&nbsp;</button>
 <button class="pageItem" style="left:433px; top:641px; " alt="fossilbutton 11" id="item30" onclick="nav.to(6);">&nbsp;</button>
 <button class="pageItem" style="left:487px; top:641px; " alt="keurigbutton 11" id="item31" onclick="nav.to(7);">&nbsp;</button>
 <button class="pageItem" style="left:541px; top:641px; " alt="dellbutton 11" id="item32" onclick="nav.to(8);">&nbsp;</button>
 <button class="pageItem" style="left:595px; top:641px; " alt="applebutton 11" id="item33" onclick="nav.to(9);">&nbsp;</button>
 <button class="pageItem" style="left:649px; top:641px; " alt="dysonbutton 11" id="item34" onclick="nav.to(10);">&nbsp;</button>
 <button class="pageItem" style="left:703px; top:641px; " alt="samsungbutton 11" id="item35" onclick="nav.to(11);">&nbsp;</button>
 <button class="pageItem" style="left:757px; top:641px; " alt="knmorebutton 11" id="item36" onclick="nav.to(12);">&nbsp;</button>
 <img class="pageItem" src="assets/images/item_25.png" style="left:16px; top:12px; " alt="page item"/>
 </li>
</body>

私はそれをかなり省略しました - 全体が巨大です - しかし、それはヘッドセクション全体です. 「ページ」(実際にはリスト項目) を 1 つだけ含めました。関連するビットは onclick="nav.to(n);" です。末尾のボタンと、ヘッドの末尾近くにあるスクリプトのスライダー設定ブロックのナビゲーション定義。

誰もが実際に答えなければならない実際のプログラミングの問題を抱えていることは承知しており、私の貧弱なプログラミング作業はあなたの優先順位のリストの下位にありますが、できるだけ早くこのことを学ぼうと必死に努力しています。

4

2 に答える 2

0

スクリプトブロックの終わりに向かって、余分なコンマがあります。IE8は、これらが原因で壊れることで有名です。

                }
            }
        });
        }
    }, <-- here

}
于 2013-02-26T16:03:54.093 に答える
0

コメント:
別の解決策を探している場合は、次のリンクで html 要素へのスクロールの一般的な実装を参照してください。そして、それは私のプロジェクト(IE8)で動作します。

リソース:
http://css-tricks.com/snippets/jquery/smooth-scrolling/

于 2014-05-06T17:48:40.517 に答える