2012-03-16 3 views
2

私はこのサイトと同様の機能を構築しようとしています。ここで、「どのように動作する」リンクをクリック上のそれはいくつかのマーケティング材料とのdivを押し下げる:プッシュダウンdivエフェクトを作成するためのJquery

https://prescreen.com/?ui=logo

あなたは、私がこの効果のために使用することができますjQueryのについての手掛かりを持っている場合は不思議。

+0

正確には、あなたが望む効果が見えますか? –

+0

「How it works」リンクをクリックしてください:https://prescreen.com/?ui=logo – Abhi

+0

ご質問の内容を間違えて読んでください。あなたは本当にあなたに適しています。 –

答えて

1

使用jQueryのslideToggle機能

EDIT:jsFiddle

+0

それはページ上の他のすべてのdivを所有するでしょうか? (私が欲しいものです) – Abhi

+0

他のコンテンツがプッシュダウンされていることを確認するには、divが通常の位置にあることを確認するだけです(つまり、絶対位置ではありません)。 –

+0

@Abhi - ランダム質問:試しましたか?もしそうなら、あなたは何を見ましたか?それは動作しましたか? – Steve

0

jQueryのUIは、効果の異なる種類を提供し、様々な金融緩和のオプションがあります。ここでは

はそれを行うことができる方法の一例です。あなたはリンクからそれらを試すことができ、私はあなたが "バウンス"効果について話していると思います。それはバウンスされているかのよう

http://jqueryui.com/demos/effect/

2

スティーブの答えは@に拡張するには、アニメーションを表示させるために.slideToggle()関数呼び出しに緩和の種類を追加することができます。

$('.toggledDiv').slideToggle('slow', 'easeOutBounce'); 

これはjQueryを含む必要ですプラグインを緩和:ここhttp://gsgd.co.uk/sandbox/jquery/easing/

はデモです:http://jsfiddle.net/ANFRD/1/

+0

'$( '.toggledDiv')。stop()。slideToggle( 'slow'、 'easeOutBounce'); '迷惑なアニメーションキューを防ぐために... – Paulooze

+1

@Pauloozeあなたのアニメーションの明確な終点を設定する。たとえば、 '.stop()'をコードに追加して数回クリックすると、エレメントはそれ以上のフルハイトまでは展開されず、実際には「壊れた」と表示されます。 '.stop()'の実装やアニメーションの実装で修正できます。 – Jasper

+0

本当に、ありがとう!しかし、要素が伸びないならば、それは無限に生き生きとするよりも優れています。ユーザーは「通常」をクリックしても問題ありません。 – Paulooze

6

ここからPrescreenのDan。私はあなたが指しているそのすてきな小さな容器を書くのを助けた。

誰もが正しい軌道に乗っています。かなりシンプルです。ここでは、全体の要素を表示し、隠すために使用される正確なトランジションの設定です:

//show the element 
element.slideDown(1800, 'easeOutBounce'); 

//hide the element (note we sped up the hide to get it out of users way ASAP) 
element.slideUp(800, 'easeOutExpo'); 

参照:

http://api.jquery.com/slideDown/

http://api.jquery.com/slideUp/

スライドショー機能は、内部設定で最初に行われましたCSSプロパティ "overflow:hidden"を持つ親 "container"。次に、idが "slideTrack"である親ラッパーのスライドの長い連鎖。私はJ. Smartが最終的にどのように機能するのかを最終決定したと思います。

<style> 
    #container { 
    overflow:hidden; 
    } 
    .slideTrack { 
    width: 10000px; 
    } 
    .slide { 
    position: relative; 
    float: left; 
    } 
    .slide1 { 
    left: 0px; 
    } 
    .slide2 { 
    left: 900px; 
    } 
    .slide3 { 
    left: 1800px; 
    } 
</style> 

<div id="container" style="overflow:hidden"> 
    <div id="slideTrack"> 
    <div class="slide" id="slide1"> slide 1 </div> 
    <div class="slide" id="slide2"> slide 2 </div> 
    <div class="slide" id="slide3"> slide 3 </div> 
    </div> 
</div> 

jQueryの関数「アニメーション」、http://api.jquery.com/animate/は、CSSトランジションをアニメーション化するために使用された:ここでは一般的な考え方です。 - =と+ =を使うと、値全体ではなくインクリメントでCSS値を変更することができます。ここでは、使用したものである:

//move right 
$(".slide").animate({ left: '-=900px'}, 1000, 'easeOutExpo'); 
//move left 
$(".slide").animate({ left: '+=900px'}, 1000, 'easeOutExpo'); 

乾杯、あなたにいくつかの時間を節約し、あなたにいくつかのアイデアを与える希望。

関連する問題