重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
专业从事网站制作、成都网站制作,高端网站制作设计,微信小程序,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用HTML5建站+CSS3前端渲染技术,自适应网站建设,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
第一步:实现思路。
1、在页面上引入图片,将图片放入到一个div标签中,将div的大小和图片设置一致
2、借助于jquery的画圆工具在div上画圆,视觉上达到影响图片的效果
2
第二步:下载jquery.min.js包。
第二步:下载jquery具体操作方法,再百度或搜狗浏览器中输入“jquery下载”点击搜索按钮--》得到查询结果进入下载界面--》
第二步:编辑代码。
打开编辑工具--引入jquery--编写代码,具体如下所示:
!DOCTYPE html
html
head
meta charset="UTF-8"
title画圆/title
style
#drawing {
width: 500px;
height: 500px;
border:1px solid;
position: relative;
overflow: hidden;
}
.circle {
background-color: green;
position: absolute;
}
/style
script src="js/jquery-3.3.1.js"/script
script
$(document).ready(function() {
// 圆
var $circle = null;
// 画布
var $drawing = $("#drawing");
// 圆心位置
var centerX = 0;
var centerY = 0;
// 是否正在画圆
var isDrawing = false;
// 按下鼠标开始画圆
$drawing.mousedown(function(event) {
$circle = $('div/div');
centerX = event.pageX - $drawing.offset().left;
centerY = event.pageY - $drawing.offset().top;
$(this).append($circle);
isDrawing = true;
event.preventDefault();
});
// 鼠标拖动
$(document).mousemove(function(event) {
if(isDrawing) {
var radiusX = Math.abs(event.pageX - $drawing.offset().left - centerX);
var radiusY = Math.abs(event.pageY - $drawing.offset().top - centerY);
var radius = Math.sqrt(radiusX * radiusX + radiusY * radiusY); // 半径,勾股定理
// 下面四个条件判断是限制圆不能超出画布区域,如果不需要这个限制可以去掉这段代码
if(centerX - radius 0) {
radius = centerX;
}
if(centerY - radius 0) {
radius = centerY;
}
if(centerX + radius $drawing.width()) {
radius = $drawing.width() - centerX;
}
if(centerY + radius $drawing.height()) {
radius = $drawing.height() - centerY;
}
// 设置圆的大小和位置
$circle.css("left", centerX - radius + "px");
$circle.css("top", centerY - radius + "px");
$circle.css("width", 2 * radius + "px");
$circle.css("height", 2 * radius + "px");
$circle.css("border-radius", radius + "px");
}
});
// 鼠标松开停止画圆
$(document).mouseup(function() {
isDrawing = false;
});
});
/script
/head
body
div id="drawing"
img width="502px;" height="502px;" src="img/cartoon/火影.jpg" /
/div
/body
/html
第四步:测试。
1、打开页面,页面展示一张火影图片
2、左键单击,按住拉,以左键第一次点击位置为中心向外延伸出一个圆
3、重新刷新页面,图片恢复原样。
1. 可以根据几何计算圆每个等分的坐标,然后根据当前的鼠标位置确定点击的是哪部分。
2. 可以使用第三方插件实现,如circliful等。
3. 可以使用svg画每一部分的等分圆,然后绑定点击事件。
4. 使用canvas画等分圆并绑定点击事件。
这种特效,只能是仿真,因为你点击到获取数据结束时的时间无法在点击的时候获取!
使用该圆形进度条插件需要引入jQuery和jquery.classycolor.min.js和jquery.classycolor.min.css文件。
link rel="stylesheet" type="text/css" href="css/jquery.classycolor.min.css" /
script src='js/jquery.min.js'/script
script src='js/jquery.classycolor.min.js'/script