javascript - CSS 子级宽度由光标在父级上的位置决定

标签 javascript jquery html css rating

我正在尝试进行基于 CSS/jQuery 的评级。这是我到目前为止所拥有的:JSFiddle .

<div class="rating">
     <div class="active" style="width: 70%"></div>
</div>

当鼠标光标位于父级 (.rating) 上时,我需要更改 .rating > .active 的百分比。例如,我将鼠标向右移动 50%,这样 .active 将具有 50% 的宽度。

Example with JS

$('.rating').on('mouseover', function(){    
    var position = $(this).position();

    $(this).find('.active').css('width', position.left);
});

但它总是返回“8”。所以我不知道为什么。

最佳答案

DEMO

添加了 mousemove 事件。 position.left表示div的位置。如果从左侧位置减去鼠标 x 坐标位置,您将得到正确的值。

$('.rating').on('mouseover mousemove', function(e){    
    var position = $(this).position();
    $(this).find('.active').css('width', e.pageX - position.left);
});

$('.rating').on('mouseout', function (e) {
    var position = $(this).position();
    $(this).find('.active').css('width', '70%'); //reset to initial value if not clicked.
});

关于javascript - CSS 子级宽度由光标在父级上的位置决定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31994277/

相关文章:

javascript - 改进插件架构的实现

javascript - 函数内函数中参数的初始值是多少?

Javascript onSubmit 函数自动执行

html - 如何在移动版 Safari 中设置 pdf 宽度

Javascript OnPageUnload - 在 "leave page"上必须调用附加方法

javascript - 使用 jquery 从批量文本中提取所有电子邮件地址

javascript - 将innerHTML 与Greasemonkey 结合使用

javascript - jQuery 事件回调速度 : Anonymous vs. 命名函数

javascript - 悬停 div mouseout 超时/淡入淡出延迟?

javascript - 在切线圆(或椭圆)上获得积分并平衡扑克筹码