0

私のブログ投稿を HTML コードの代わりに JCarousel に追加することはできますか? 次のようになります。

=>

このサイトのコンテンツは html だけですが、ブログの投稿を目立たせたいと思っています。

私が 5 つのブログ投稿を書いたとしましょう。したがって、Slider は 5 つのブログ投稿を表示する必要があります。

誰かが私を助けてくれることを願っています!

ご挨拶

ニコ

4

1 に答える 1

0

ブログ投稿ノードを表示するマクロ (xslt または razor) を作成し、jquery でターゲットにして jcarousel をロードする必要があります。以下は、参照した例のコードを使用してこれを行う剃刀スクリプトのです。

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@try
{
    <script type="text/javascript" src="http://www.fdp-bw.de/jcarousel/lib/jquery-1.2.3.pack.js"></script>
    <script type="text/javascript" src="http://www.fdp-bw.de/jcarousel/lib/jquery.jcarousel.pack.js"></script>

    <link rel="stylesheet" type="text/css" href="http://www.fdp-bw.de/jcarousel/lib/jquery.jcarousel.css" />
    <link rel="stylesheet" type="text/css" href="http://www.fdp-bw.de/jcarousel/skins/tango/skin.css" />

    <style type="text/css">

    /**
     * Additional styles for the controls.
     */
    .jcarousel-control {
        margin-bottom: 10px;
        text-align: center;
    }

    .jcarousel-control a {
        font-size: 75%;
        text-decoration: none;
        padding: 0 5px;
        margin: 0 0 5px 0;
        border: 1px solid #fff;
        color: #eee;
        background-color: #4088b8;
        font-weight: bold;
    }

    .jcarousel-control a:focus,
    .jcarousel-control a:active {
        outline: none;
    }

    .jcarousel-scroll {
        margin-top: 10px;
        text-align: center;
    }

    .jcarousel-scroll form {
        margin: 0;
        padding: 0;
    }

    .jcarousel-scroll select {
        font-size: 75%;
    }

    #mycarousel-next,
    #mycarousel-prev {
        cursor: pointer;
        margin-bottom: -10px;
        text-decoration: underline;
        font-size: 11px;
    }

    </style>

    <script type="text/javascript">
        /**
        * We use the initCallback callback
        * to assign functionality to the controls
        */
        function mycarousel_initCallback(carousel) {
            jQuery('.jcarousel-control a').bind('click', function () {
                carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
                return false;
            });

            jQuery('.jcarousel-scroll select').bind('change', function () {
                carousel.options.scroll = jQuery.jcarousel.intval(this.options[this.selectedIndex].value);
                return false;
            });

            jQuery('#mycarousel-next').bind('click', function () {
                carousel.next();
                return false;
            });

            jQuery('#mycarousel-prev').bind('click', function () {
                carousel.prev();
                return false;
            });
        };

        // Ride the carousel...
        jQuery(document).ready(function () {
            jQuery("#mycarousel").jcarousel({
                scroll: 1,
                visible: 1,
                auto: 10,
                wrap: "last",
                initCallback: mycarousel_initCallback,
                // This tells jCarousel NOT to autobuild prev/next buttons
                buttonNextHTML: null,
                buttonPrevHTML: null
            });
        });

    </script>

    <div id="mycarousel" class="jcarousel-skin-tango">
        <ul>
        @foreach (var post in Model.AncestorOrSelf().Descendants("umbBlogPost"))
        {
            <li>
                <h2>@post.Name</h2>
                <div>@post.bodyText</div>
            </li>
        }
        </ul>
        <div class="jcarousel-control">
        @for (int i = 0; i < Model.AncestorOrSelf().Descendants("umbBlogPost").Count(); i++)
        {
             <a href="#">@(i + 1)</a>
        }
        </div>
    </div>

}
catch (Exception e)
{
    <!-- @e.ToString() -->
}

これにより、すべての投稿が表示されます。順序付けとフィルタリングを行ってから、上位 5 つなどを取得したい場合があります。

var posts = Model.AncestorOrSelf().Descendants("umbBlogPost").OrderBy("PostDate desc").Take(5);
于 2012-07-20T16:16:19.483 に答える