当前位置: 首页 > wzjs >正文

微信小程序商城怎么开发站长工具seo优化系统

微信小程序商城怎么开发,站长工具seo优化系统,第一模板ppt免费下载,装修行业网站建设文章目录 前言示例-橡皮筋式选取框示例代码 前言 尽管我们可以说 Canvas 是 HTML5 之中最棒的功能,不过在实现网络应用程序时,很少会单独使用它。在绝大多数情况下,你都会将一个或更多的 canvas 元素与其他 HTML 控件结合起来使用&#xff0…

文章目录

  • 前言
  • 示例-橡皮筋式选取框
  • 示例代码


前言

尽管我们可以说 Canvas 是 HTML5 之中最棒的功能,不过在实现网络应用程序时,很少会单独使用它。在绝大多数情况下,你都会将一个或更多的 canvas 元素与其他 HTML 控件结合起来使用,以便让用户可以通过输入数值或其他方式来控制应用程序。

要将其他 HTML 控件与 canvas 结合起来使用,首先想到的办法可能是将控件嵌入到 canvas 元素之中。不过这么多不行,因为任何放入 canvas 元素主体部分的东西,只有在浏览器不支持 canvas 元素时,才会被显示出来。

浏览器要么显示 canvas 元素,要么显示放在元素之中的 HTML 控件,它不会将两者同时显示出来。所以,必须将控件放在 canvas 元素之外。

为了让 HTML 控件看上去好像是出现在 canvas 范围内,可以使用 CSS 将这些控件放置在 canvas 之上。


示例-橡皮筋式选取框

示例采用了一种名为“橡皮筋式”(rubberbanding)选取框的技术来让用户在 canvas 之中选择某个区域。起初,该 canvas 会显示一副图像,然后当选定图像的某一部分时,应用程序会将你所选的这部分区域放大。

在这里插入图片描述
在这里插入图片描述


示例代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8" /><title>橡皮筋选框放大器</title><style>body {background: rgba(100, 145, 250, 0.3);}#canvas {margin-left: 20px;margin-right: 0;margin-bottom: 20px;border: thin solid #aaaaaa;/*十字瞄准线*/cursor: crosshair;padding: 0;}#controls {margin: 20px 0px 20px 20px;}#rubberbandDiv {/*绝对定位,方便位置选取*/position: absolute;border: 3px solid yellow;cursor: crosshair;display: none;}</style></head><body><!--控制重置画面的按钮--><div id="controls"><input type="button" id="resetButton" value="Reset" /></div><!--橡皮筋选取狂div--><div id="rubberbandDiv"></div><canvas id="canvas" width="800" height="520">Canvas not supported</canvas><p>拖拽鼠标拉取橡皮筋,选中区域并放大</p></body><script>var canvas = document.getElementById('canvas'),context = canvas.getContext('2d'),rubberbandDiv = document.getElementById('rubberbandDiv'),resetButton = document.getElementById('resetButton'),image = new Image(),//鼠标按下时刻的对象mousedown = {},//橡皮筋矩形对象rubberbandRectangle = {},dragging = false//Functions……/*** 将#rubberbandDiv的左上角移动到鼠标按下的位置* @param x* @param y*/function rubberbandStart(x, y) {mousedown.x = xmousedown.y = yrubberbandRectangle.left = mousedown.xrubberbandRectangle.top = mousedown.ymoveRubberbandDiv()showRubberbandDiv()dragging = true}/*** 对橡皮筋选取框进行移动和缩放* @param x* @param y*/function rubberbandStretch(x, y) {//「左上」「右下」「左下」「右上」的各种两两组合的拉伸方式rubberbandRectangle.left = x < mousedown.x ? x : mousedown.xrubberbandRectangle.top = y < mousedown.y ? y : mousedown.yrubberbandRectangle.width = Math.abs(x - mousedown.x)rubberbandRectangle.height = Math.abs(y - mousedown.y)moveRubberbandDiv()resizeRubberbandDiv()}/*** 将选中的区域放大并绘制,并将橡皮筋div隐藏*/function rubberbandEnd() {//返回涵盖元素的大小以及窗口位置的对象var bbox = canvas.getBoundingClientRect()try {//选区放大context.drawImage(canvas,rubberbandRectangle.left - bbox.left,rubberbandRectangle.top - bbox.top,rubberbandRectangle.width,rubberbandRectangle.height,0,0,canvas.width,canvas.height)} catch (e) {// suppress error message when mouse is released// outside the canvasalert('鼠标释放错误警报!')}resetRubberbandRectangle()rubberbandDiv.style.width = 0rubberbandDiv.style.height = 0hideRubberbandDiv()dragging = false}/*** 让橡皮筋选狂的属性和橡皮筋矩形对象的位置保持一致*/function moveRubberbandDiv() {rubberbandDiv.style.top = rubberbandRectangle.top + 'px'rubberbandDiv.style.left = rubberbandRectangle.left + 'px'}/*** 调整橡皮筋div的宽高*/function resizeRubberbandDiv() {rubberbandDiv.style.width = rubberbandRectangle.width + 'px'rubberbandDiv.style.height = rubberbandRectangle.height + 'px'}/*** 通过display显示橡皮筋*/function showRubberbandDiv() {rubberbandDiv.style.display = 'inline'}/*** 通过display隐藏橡皮筋*/function hideRubberbandDiv() {rubberbandDiv.style.display = 'none'}/*** 重置初始化橡皮筋矩形对象*/function resetRubberbandRectangle() {rubberbandRectangle = { top: 0, left: 0, width: 0, height: 0 }}//Event handlers……canvas.onmousedown = function (ev) {var x = ev.x || ev.clientX,y = ev.y || ev.clientYev.preventDefault()rubberbandStart(x, y)}window.onmousemove = function (ev) {var x = ev.x || ev.clientX,y = ev.y || ev.clientYev.preventDefault()if (dragging) {rubberbandStretch(x, y)}}window.onmouseup = function (ev) {ev.preventDefault()rubberbandEnd()}image.onload = function (ev) {context.drawImage(image, 0, 0, canvas.width, canvas.height)}resetButton.onclick = function (ev) {context.clearRect(0, 0, context.canvas.width, context.canvas.height)context.drawImage(image, 0, 0, canvas.width, canvas.height)}//Initialization……image.src = 'arch.png'</script>
</html>

http://www.dtcms.com/wzjs/401063.html

相关文章:

  • 兰州网站建设公关键词歌词
  • 首页设计网站 专注怎么做好网络推广销售
  • jsnba在线直播免费观看直播应用关键词优化
  • 通化网站制作免费收录链接网
  • b2b网站运营方案磁力吧ciliba
  • 电影网站制作教程建一个外贸独立站大约多少钱
  • 手机端网站优化怎么做天津百度seo排名优化软件
  • 青岛建设集团官方网站百度业务推广
  • 怎么找网站做公示百度推广登录平台官网
  • creative建网站平台2020 惠州seo服务
  • 郓城做网站公司新手seo要学多久
  • 礼服外贸网站简述什么是seo
  • 备案网站系统重大新闻事件2023
  • 织梦科技谷歌seo顾问
  • 查询网站怎么做的seo综合查询是什么意思
  • 有哪些网站做返利模式重庆百度推广优化
  • 山东网站优化优化网站排名工具
  • 如何关联网站与网站今日头条新闻大事件
  • 扁平化设计风格网站微信营销的模式有哪些
  • 做网站不赚钱网络公司主要做哪些
  • 顺德营销型网站建设温州seo排名优化
  • 深圳宝安医院的网站建设爱站工具下载
  • 网站的做网站的公司百度搜索关键词技巧
  • 如何做网站流量买卖百度网址提交入口
  • 网站建设归工商局管还是工信局管网络推广价格
  • 小企业网站开发论文黄页88网站推广效果
  • 网站建设具体步骤应该怎么做谷歌广告投放教程
  • 怎么对企业进行网站建设企业qq和个人qq有什么区别
  • 将一个网站拉入黑名单怎么做2345网址大全浏览器
  • 东莞中小企业网站制作建立企业网站步骤