首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery反弹变化(反弹)

jQuery反弹变化(反弹)
EN

Stack Overflow用户
提问于 2011-10-24 17:21:33
回答 1查看 3.5K关注 0票数 1

我正在努力寻找一个插件/插件,这是我的项目的一个关键部分,我忽略了它,现在它咬了我。

我需要一个jQuery反弹的变体,它可以让div无限期地围绕父div/wrapper反弹。

有效地,我将有一个屏幕,用户通过点击产生div,他们在屏幕上浮动/弹跳。

请帮助我找到一个插件或一些代码,可以帮我解决这个问题。

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-25 03:24:16

我不能告诉您在使用100div的情况下会有多大的响应,但是基于前面的脚本,这里有一些东西可以让您至少开始使用- http://jsfiddle.net/jgJsL/5/

代码语言:javascript
复制
$.fn.bounce = function(options) {

    var settings = $.extend({
        speed: 10
    }, options);

    return $(this).each(function() {

        var $this = $(this),
            $parent = $this.parent(),
            height = $parent.height(),
            width = $parent.width(),
            top = Math.floor(Math.random() * (height / 2)) + height / 4,
            left = Math.floor(Math.random() * (width / 2)) + width / 4,
            vectorX = settings.speed * (Math.random() > 0.5 ? 1 : -1),
            vectorY = settings.speed * (Math.random() > 0.5 ? 1 : -1);

        // place initialy in a random location
        $this.css({
            'top': top,
            'left': left
        }).data('vector', {
            'x': vectorX,
            'y': vectorY
        });

        var move = function($e) {

            var offset = $e.offset(),
                width = $e.width(),
                height = $e.height(),
                vector = $e.data('vector'),
                $parent = $e.parent();

            if (offset.left <= 0 && vector.x < 0) {
                vector.x = -1 * vector.x;
            }
            if ((offset.left + width) >= $parent.width()) {
                vector.x = -1 * vector.x;
            }
            if (offset.top <= 0 && vector.y < 0) {
                vector.y = -1 * vector.y;
            }
            if ((offset.top + height) >= $parent.height()) {
                vector.y = -1 * vector.y;
            }

            $e.css({
                'top': offset.top + vector.y + 'px',
                'left': offset.left + vector.x + 'px'
            }).data('vector', {
                'x': vector.x,
                'y': vector.y
            });

            setTimeout(function() {
                move($e);
            }, 50);

        };

        move($this);
    });

};

$(function() {
    $('#wrapper li').bounce({
        'speed': 7
    });
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7873502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档