用鼠标移动填充容器的颜色
on mouse move fill container with color
假设我有一个div,宽度为100px,高度为40px,背景色为橙色。我想运行我的鼠标通过div从左到右,随着鼠标移动,它应该填充颜色为绿色的div。一旦鼠标越过div的末尾,颜色应该保持绿色。如果鼠标光标在通过结束前离开div,则颜色应该动画/填充回橙色。此外,鼠标必须从div的开始(0px)开始,否则鼠标移动效果将不执行任何操作。
我花了几天时间在这件事上,它快把我逼疯了。
这是我到目前为止的一些内容
enter code here
https://jsfiddle.net/7my7etzm/
这个工作?
$(document).ready(function() {
var $orangeBox = $(".orangeBox"),
$greenBox = $(".greenBox"),
$goalPosts = $(".goalPosts"),
winning = function() {
$orangeBox.unbind('mousemove').unbind('mouseleave');
$goalPosts.remove();
};
$orangeBox.bind('mousemove', function(e) {
var xPosition = e.pageX - this.offsetLeft;
$goalPosts.show();
$greenBox.css('width', xPosition);
if (xPosition > $orangeBox.outerWidth()) {
winning();
}
})
.bind('mouseleave', function(){
if($greenBox.outerWidth() < ($orangeBox.outerWidth() - 1)) {
$greenBox.animate({
width: "0"
}, 500);
$goalPosts.hide();
}
});
});
.orangeBox{
position:relative;
display:block;
height:40px;
width:100px;
background:orange;
}
.greenBox {
position:absolute;
height:100%;
top:0;
left:0;
background:green;
}
.goalPosts {
position:absolute;
display:none;
height:100%;
top:0;
left:100%;
width:100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="orangeBox">
<div class="greenBox"></div>
<div class="goalPosts"></div>
</div>
这是一个非常快速和基本的解决方案,我希望它有助于一点
solution
on js fiddle
ps:帧率应该调整,因为当快速移动鼠标时它会失败
这是最简单的工作演示。我相信你可以改进的。
solution https://jsfiddle.net/h8w1qxze/
相关文章:
- 用与线条相同的颜色填充多折线图上的点
- 用图像而不是颜色填充对象(将图像绘制到画布上)
- 椭圆字幕选择,然后在Photoshop中使用Javascript填充颜色
- 如何访问svg内部id并让CSS更改该id的填充颜色
- 在自定义坐标处获取RaphaelJS元素的颜色填充
- 一次高亮显示一个城市,并在悬停其他城市时删除颜色填充
- 用不同颜色填充的Highchart数据系列
- 如何在高图表的 2 点之间制作颜色填充区域
- PHP:用颜色填充图像块并保存信息
- 用颜色填充t恤,并在HTML画布上相应地更改文本颜色
- 使用javascript创建10*10表,并使用从黑色到白色的颜色填充单元格
- 我不能用颜色填充线条.它只是让它们变成黑色
- 如何使用CSS使用不同的颜色填充chrome中输入[type=“range”]的左侧
- 通过谷歌应用程序脚本的颜色填充电子表格中的谷歌日历事件
- 从中心用颜色填充圆形Div
- 有没有办法用颜色填充一半的按钮背景?
- 动态颜色填充渐变不起作用
- 如何用颜色填充路径项
- 用图像而不是颜色填充画布区域
- 点击时更改谷歌地图多边形颜色/填充