javascript - jquery 不够快,无法更改左上角的值

标签 javascript jquery css

我这里有一个非常简单的逻辑。我创建了容器,并将其放在所需位置的顶部,在这种情况下,我需要在此处发生 css 字体缩放效果。

但问题是,如果您在 .sortable li 周围移动鼠标足够快,单词就会开始飞来飞去!

演示:http://mac.idev.ge:800/words/将鼠标悬停在字词上。

是不是很奇怪?我该如何优化我的代码来解决这个问题?

// Zoom on hover effect for sortable items
// Create empty container
$("body").append("<div id='words_zoom'></div>");
var wz = $("#words_zoom");

$(document).on({
    mouseenter: function() {
        var item = $(this);
        var item_offset = item.offset();

        // position the zoom container
        var central_left = item_offset.left;
        var central_top = item_offset.top;

        wz.show();

        wz.css({"left":central_left,"top":central_top});

        wz.html(item.html());

        //
        //wz.stop().animate({"font-size":"2.2em",top:"-=3",left:"-=3"}, 300, "easeOutExpo");
    },
    mouseleave: function() {
        //
    }
}, ".sortable li:not('.delete-text')");

//
$(document).on("mouseleave", "#words_zoom", function() {
    //wz.css({"font-size":"2em",top:"+=3",left:"+=3"}).hide();
    wz.hide();
    wz.css({"left":0,"top":0});
});

最佳答案

问题实际上出在您的 CSS 中:

#words_zoom {
    background: #fff;
    display: none;
    position: absolute;
    font-family: 'Lato', sans-serif;
    font-size: 2em;
    cursor: pointer;
    text-transform: capitalize;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

尝试将过渡属性更改为仅过渡到您想要的属性(我猜您只需要字体大小)。

#words_zoom {
    background: #fff;
    display: none;
    position: absolute;
    font-family: 'Lato', sans-serif;
    font-size: 2em;
    cursor: pointer;
    text-transform: capitalize;
    -webkit-transition: font-size 0.3s ease;
    -moz-transition: font-size 0.3s ease;
    -o-transition: font-size 0.3s ease;
    -ms-transition: font-size 0.3s ease;
    transition: font-size 0.3s ease;
}

关于javascript - jquery 不够快,无法更改左上角的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19356990/

相关文章:

html - 从代码中删除段落后,页脚会更改其 UI

javascript - Google Apps 脚本查找函数来电者 ID

javascript - 为什么这段代码中的 for 循环在 Jquery Selector 之前执行?

jquery - slider 边框宽度的 CSS 冲突

javascript - jQuery 只允许数字、字母和连字符

javascript - 回发后调用 javascript 函数来启动 Flash 游戏

HTML 边框 float 中心位置固定

javascript - 在 Smarty 模板中使用标签 &lt;script&gt; 和 if

javascript - 如何使用 javascript 和 css 显示扩展文本

javascript - 使用 Javascript 在 HTML 中刷新后保留选项