最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Looking to build an expand on hovercontract on blur div - Stack Overflow

programmeradmin0浏览0评论

Hey all, I've been beating my head against the search engine walls for a couple hours now and figure I might as well just ask...

I need to build a div that is one size on blur, say 300x30, that expands to 300x300 on hover and pushes all content below it down and will revert to the 300x30 size when blurred ("no longer hovered" or whatever you kids are calling it now-a-days lol) again. Can someone point me to some resources or even give me some code bits to play with? It'd be much appreciated!

Hey all, I've been beating my head against the search engine walls for a couple hours now and figure I might as well just ask...

I need to build a div that is one size on blur, say 300x30, that expands to 300x300 on hover and pushes all content below it down and will revert to the 300x30 size when blurred ("no longer hovered" or whatever you kids are calling it now-a-days lol) again. Can someone point me to some resources or even give me some code bits to play with? It'd be much appreciated!

Share Improve this question asked Sep 20, 2010 at 20:49 86Stang86Stang 3492 gold badges4 silver badges16 bronze badges
Add a comment  | 

3 Answers 3

Reset to default 13

You can use Psuedo-classes in CSS if you don't want an animation.

div.div {
   height: 30px;
   width: 300px;
   border: 1px solid black;
}

div.div:hover {
   height: 300px;
}​

Live Example

http://jsfiddle.net/aFUmS/

$('.div').hover(function() {
    $(this).animate({
        height: '300px'
    }, 300);
},function() {
    $(this).animate({
        height: '30px'
    }, 300);
});​

jQuery example if you want animation

http://jsfiddle.net/CvhkM/

Or you can add a .stop() before the .animate and the animation will stop immediately after you remove the pointer.

$('.div').hover(function() {
    $(this).stop().animate({
        height: '300px'
    }, 300);
},function() {
    $(this).stop().animate({
        height: '30px'
    }, 300);
});

If you add a transition to Robert's answer, it's CSS-only, and you get animation, too:

Add this to the div (not the div:hover): transition: height 0.5s ease-in;

I just implemented this on a site, and it even works well for mobile. The div does have to be a static height when collapsed and expanded, though.

发布评论

评论列表(0)

  1. 暂无评论