JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
成都网站建设哪家好,找创新互联!专注于网页设计、成都网站建设、微信开发、微信小程序、集团成都企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都PE包装袋等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞誉!
第一步:实现思路。
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画等分圆并绑定点击事件。
如果是支持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之类的库,你可以搜索下,在官网上看看他介绍。