重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。成都创新互联专业提供网站制作、成都网站设计,网页设计,网站制作(企业站、响应式网站开发、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
第一步:实现思路。
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、重新刷新页面,图片恢复原样。
肯定可以啊,不过前提是你要先做好空间建模,就是二维图形的原始坐标
然后持续遍历,具体的DEMO你可以看看ge1doot的一些实例
如果你说通过算法就要通过逐行寻找特征点,然后循环通过X轴和Y轴的六个正向像素点找到最远的X或者Y坐标,这样你就得到一个角度为已知的能过中心线的点,剩下的就通过投影到过圆心的线来计算出直径了
你好,很高兴为你作答。
圆角按钮属于外观样式,他们是由CSS决定的,而使用CSS3能够轻松实现圆角按钮,如下代码:
!DOCTYPE html
html
head lang="en"
meta charset="UTF-8"
title圆角按钮/title
style
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
border: 1px solid transparent;
border-radius: 4px;
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
/style
/head
input type="button" id="button_equal" class="btn" value="我是圆角按钮"
body
/body
/html
如果是支持CSS3的浏览器,定义border-radius属性,就是盒模型的边界圆角,值越大越圆。
用jquery做的话,就是定义一个带border-radius的class,然后选择相应的元素,在hover事件中使用addClass方法添加这个class。
但是,这是不好的做法,或者说是dumb way。因为直接使用css的hover伪类就可以实现,完全不需要借助jquery或者说js
例如你的这几个div拥有一个class,title-div,那么只需要
.title-div:hover {
border-radius: 8px;
}
就可以实现鼠标一上去圆角。
不过要是需要兼容IE6/7/8这种不支持CSS3特性的浏览器,就得使用CSS3Pie之类的库,你可以搜索下,在官网上看看他介绍。
1. 可以根据几何计算圆每个等分的坐标,然后根据当前的鼠标位置确定点击的是哪部分。
2. 可以使用第三方插件实现,如circliful等。
3. 可以使用svg画每一部分的等分圆,然后绑定点击事件。
4. 使用canvas画等分圆并绑定点击事件。
这种特效,只能是仿真,因为你点击到获取数据结束时的时间无法在点击的时候获取!