2012-03-04 9 views
0

私はPHPでニュースセクションを生成しています。ブログ記事のように読んでいきたいと思います。ユーザーが読み続けるを​​クリックすると、私はすべてのニュース記事をスライドさせます。ここで は私が持っているコードです:jqueryを使用してコンテンツのスライドダウン効果をより詳細に読む方法

<?php foreach ($news as $newsItem) : ?> 
    <div class="news-item" id="news-<?php echo $newsItem->id; ?>"> 
     <a href="#" class="image"><img src="/path/to/my/image" 
      alt="<?php echo $newsItem->photo; ?>" /></a> 
     <h4><a><?php echo $newsItem->title; ?></a></h4> 
     <p><?php echo $newsItem->content; ?></p> 
     <a class="read-more" href="<?php echo ROOT_PATH; ?>front/site/news">Read more</a> 
    </div> 
<?php endforeach; ?> 

$('body').on('click', 'a.read-more', function(){ 
    // what should happen here? 
}) 

答えて

1

まず、お使いのjQueryのスニペットは次のようになります。そして、

 
$(function() { // Only when DOM is ready 
    $('a.read-more').on('click', function() { 
    // Your code 
    } 
}); 

、あなたがの遅延ロードを使用するかどうかを決定する必要があります内容かどうか。二つの解決策:

  1. あなたは、単に記事全体をロードして、ページの読み込みに読み取りよりセクションを非表示にします。私は第一を使用する必要があなたは
+0

(ニュースのIDを使用して)自分のデータベースからコンテンツをロードするためにAJAXを使用し

  • 解決策私は、私が投稿の50文字のように隠す必要があるので、私は思う、私がそれ以上の内容をスライドさせる必要があります読むのをクリックすると – Mythriel

  • +0

    次に、このフィドルを例として見てみましょう:http://jsfiddle.net/gpoussel/9Z4au/2/ –

    +0

    私が達成したいと思っているものとかなり近いですが、すべてのコンテンツがロードされ、jqueryが1番目だけを表示したい2番目の部分を非表示にして、2番目の部分をスライドさせてさらに読むと、 – Mythriel

    0
    <?php foreach ($news as $newsItem) : ?> 
        <div class="news-item" id="news-<?php echo $newsItem->id; ?>"> 
        <a href="#" class="image"><img src="/path/to/my/image" 
         alt="<?php echo $newsItem->photo; ?>" /></a> 
        <h4><a><?php echo $newsItem->title; ?></a></h4> 
    
        <!-- echo first part of the article here --> 
        <p><?php echo $newsItem->content-summary; ?></p> 
        <div class="hidden-more"> 
    
         <!-- echo the remainder of the article here --> 
         <p><?php echo $newsItem->content-remaining; ?></p> 
        </div> 
        <a class="read-more" href="<?php echo ROOT_PATH; ?>front/site/news">Read more</a> 
        </div> 
    <?php endforeach; ?> 
    

    CSS

    div.hidden-more{ 
        display:none; 
    } 
    

    jQueryの

    $(function(){ 
        $('a.read-more').on('click', function(){ 
         //find local hidden area and show it with nice slide effect 
         $(this).parent().find('div.hidden-more').slideDown(); 
        }); 
    }); 
    
    +0

    はいいいえ、どうすれば記事の第1部と残りの部分を生成できますか?記事...私はデータベースのようなものを保存したくない、私はコンテンツの最初の部分だけを表示するjqueryとしたいと残りの部分を表示するためにクリック – Mythriel

    +0

    あなたはPHPでそれを行う、部分文字列を使用連結のために。私は大きなPHPの男ではありませんが、変数を取って50文字に制限し、同じdbレコードから同じ変数を使用して最初の50文字を切り捨てることができます。 – Fresheyeball

    関連する問題